2013-02-12 2 views
2

Я создал this simple html:Ясное исправление HTML не работает в хроме?

есть 2 SPANs здесь.

один должен быть ниже другого, очищая поплавок.

enter image description here

bbb элемент имеет float:left

И я (на aaa элемента), "clearfix" CSS Facebook, которая является:

.clearfix:before { content: ""; display: table; } 
.clearfix:after { content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;} 

.clearfix { zoom: 1; } 

Это действительный путь (как facebook do) и как described here

Однако он работает в F ireFox: (смотри вышеприведенное изображение)

Но в хроме (v 24) это не так.

enter image description here

Что мне не хватает?

+0

Похоже, хром ошибка. '.clearfix: после {display: block} 'с некоторым контентом должен делать то же самое, что иметь реальный div в конце внутренней части диапазона .clearfix. Но это не так. – Alohci

+0

@ downoter, объяснения полезны! –

+0

Я просто взглянул на код facebook. Кажется, они используют этот класс только на уровне блочного контента. Ваш первый интервал - это встроенный контент AFAICT. – wds

ответ

1

Ваш jsbin пример имеет две опечатки/ошибки синтаксиса и код clearfix не является правильным.

  1. <span class=" clearfix"> у вас есть пробел перед clearfix
  2. <span class='fll'>bbbbb </span> у вас есть одиночные кавычки вместо двойных кавычек.

Изменить HTML на:

 <div class="clearfix">aaa </div> 
     <div class="fll">bbbbb </div> 

и ваш CSS для:

.clearfix:after { 
    visibility: hidden; 
    display: block; 
    font-size: 0; 
    content: " "; 
    clear: both; 
    height: 0; 
    } 
.clearfix { display: inline-table; } 
* html .clearfix { height: 1%; } 
.clearfix { display: block; } 

и он работает (все браузеры, IE6-7 включены) http://jsbin.com/ukaxav/19/

+0

все еще у вас есть одинарная котировка на втором пролете – Vinay

+0

да, извините .. слишком много ошибок, чтобы исправить с помощью этого кода –

+3

ЧТО? 'class =" clearfix "' действительно. а также '' 'действительно. –

0
.clearfix { display: block; } 

Разве это не «бит» более чистый?

+0

есть разница между блоком отображения и очистить оба. мой вопрос об очистке поплавков. –

+0

Предоставьте exaustive jsfiddle, и мы сможем работать над ним. В вашей скрипке достаточно простого «дисплея: блок». –

+0

здесь. http://robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/ посмотреть на это, где раздел - генерация контента через CSS_ –

0

добавить дисплей: встроенный блок; свойство родительскому div.

Код:

<div style="height: 100%; border: 1px solid blue;display: inline-block;"> 
<span class=" clearfix" style="">aaa </span> 
<span class="fll">bbbbb </span> 
</div> 
+0

, это приводит к тому, что обертка div ведет себя не так, как ожидалось. div должен быть 100% по умолчанию. –

+0

Вам нужно добавить ширину: 100%; к родительскому div. – Aratidgr8

+0

div по умолчанию 100% ...... –

0

Clearfix предназначен для очистки поплавков. значение, на элемент, который содержит float. Не для очистки предыдущих поплавков. Так что в своем вопросе вы не ставите clearfix на правильное место или не понимаете принцип.

+0

Я очищаю поплавки. это то, что делает класс after psuedo. снова посмотрите на код. –

0

Добавить width: 100%; в вашем fll

так,

.clearfix:before { 
    content: ""; 
    display: table; } 

.clearfix:after { 
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden; } 

.clearfix { zoom: 1; } 

.fll 
{ 
    float:left; 
    width: 100%; 
} 
+0

addint 100% - еще одно решение. но затем вы можете удалить clearfix. мой вопрос, почему ясное исправление не работает. –

+0

здесь http://robertnyman.com/2007/04/12/how-to-clear-css-floats-without-extra-markup-different-techniques-explained/ вы можете видеть, что это другое решение, но я хочу используйте clearfix. –

Смежные вопросы