Какие методы «clearfix» я могу использовать?
У меня давняя проблема: div
обертывает макет 9X_min-width из двух столбцов. Моя боковая панель перемещается, поэтому 9X_dynamic-css мой контейнер div
не может обернуть содержимое 9X_inline-block и боковую панель.
Кажется, существует множество 9X_css2 способов исправить явную ошибку в Firefox:
overflow:auto
overflow:hidden
В 9X_clearfix моей ситуации единственное, что кажется 9X_clearfix работающим правильно, - это решение
, которое 9X_css-reset немного неаккуратно. overflow:auto
дает мне неприятные 9X_css-reset полосы прокрутки, а overflow:hidden
обязательно должен 9X_max-height иметь побочные эффекты. Кроме того, IE7, по-видимому, не 9X_max-height должен страдать от этой проблемы из-за его 9X_css2 неправильного поведения, но в моей ситуации 9X_min-width он страдает так же, как и Firefox.
Какой 9X_css-layout из доступных в настоящее время методов является 9X_css-classes наиболее надежным?
- А как насчет IE 6 и IE 7? Они никогда не следуют правильному пути, чт ...
Ответ #1
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
В зависимости от создаваемого дизайна каждое 9X_min-height из приведенных ниже решений clearfix CSS 9X_css-classes имеет свои преимущества.
У clearfix есть 9X_font-weight полезные приложения, но его также использовали 9X_min-height в качестве взлома. Прежде чем использовать 9X_css-classes clearfix, возможно, вам могут пригодиться 9X_clearfix эти современные решения css:
- css flexbox
- css grid
Современные решения Clearfix
Контейнер с overflow: auto;
Самый простой 9X_css3 способ очистить плавающие элементы - использовать 9X_clearfix стиль overflow: auto
для содержащего элемента. Это решение 9X_css-reset работает во всех современных браузерах.
Your content here…
Один 9X_css3 недостаток: использование определенных комбинаций 9X_max-width полей и отступов на внешнем элементе может 9X_inline-block привести к появлению полос прокрутки, но 9X_box-shadow это можно решить, разместив поля и отступы 9X_font-weight на другом родительском элементе, содержащем.
Использование 9X_dynamic-css ‘overflow: hidden’ также является решением 9X_css-classes clearfix, но не будет иметь полос прокрутки, однако 9X_max-height использование hidden
обрежет любой контент, расположенный 9X_css-reset за пределами содержащего элемента.
Примечание. Плавающий 9X_box-shadow элемент в этом примере является тегом img
, но 9X_css-classes может быть любым элементом html.
Clearfix Reloaded
Тьерри Кобленц 9X_inline-block на CSSMojo написал: The very latest clearfix reloaded. Он отметил, что отказавшись 9X_box-shadow от поддержки oldIE, решение можно упростить 9X_max-width до одного оператора css. Кроме того, использование 9X_css-columns display: block
(вместо display: table
) позволяет правильно сжимать поля, когда 9X_css элементы с clearfix являются братьями и 9X_inline-block сестрами.
.container::after { content: ""; display: block; clear: both; }
Это самая современная версия clearfix.
⋮
⋮
Старые решения Clearfix
Приведенные 9X_inline-block ниже решения не обязательны для современных 9X_max-width браузеров, но могут быть полезны для таргетинга 9X_max-height на старые браузеры.
Обратите внимание, что 9X_inline-block эти решения основаны на ошибках браузера 9X_font-weight и поэтому должны использоваться только в 9X_dynamic-css том случае, если ни одно из вышеперечисленных 9X_max-height решений не работает для вас.
Они перечислены 9X_css3 примерно в хронологическом порядке.
"Beat That ClearFix", исправление для современных браузеров
Тьерри 9X_css-layout Кобленц из CSS Mojo указал, что при нацеливании 9X_max-height на современные браузеры мы теперь можем 9X_inline-block отбросить свойство / значения zoom
и ::before
и просто 9X_dynamic-css использовать:
.container::after { content: ""; display: table; clear: both; }
Это решение не поддерживает IE 6/7… специально!
Тьерри также предлагает: "A word of caution: если 9X_css-columns вы начинаете новый проект с нуля, действуйте, но 9X_dynamic-css не меняйте этот метод на тот, который у 9X_css-columns вас есть сейчас, потому что даже если вы 9X_css-columns не поддерживаете oldIE, ваш существующий 9X_max-height правила предотвращают сужение полей ".
Micro Clearfix
Самое 9X_css последнее и глобально принятое решение clearfix, Micro Clearfix by Nicolas Gallagher.
Известная поддержка: Firefox 3.5+, Safari 4+, Chrome, Opera 9+, IE 6+
.container::before, .container::after { content: ""; display: table; } .container::after { clear: both; } .container { zoom: 1; }
Свойство переполнения
Этот 9X_clearfix базовый метод предпочтительнее для обычного 9X_max-width случая, когда позиционированный контент 9X_css2 не отображается за пределами контейнера.
http://www.quirksmode.org/css/clearing.html - объясняет, как решить распространенные проблемы, связанные с этим методом, а именно настройку width: 100%
в контейнере.
.container { overflow: hidden; display: inline-block; display: block; }
Вместо 9X_css-layout использования свойства display
для установки hasLayout 9X_clearfix для IE, для triggering "hasLayout" for an element можно использовать другие свойства.
.container { overflow: hidden; zoom: 1; display: block; }
Другой 9X_css-layout способ очистить плавающие объекты с помощью 9X_css2 свойства overflow
- использовать underscore hack. IE будет применять 9X_css-classes значения с префиксом подчеркивания, другие 9X_max-width браузеры - нет. Свойство zoom
запускает hasLayout в IE:
.container { overflow: hidden; _overflow: visible; /* for IE */ _zoom: 1; /* for IE */ }
Хотя 9X_css-columns это работает ... использовать хаки не идеально.
PIE: простой метод очистки
Этот 9X_font-weight старый метод «легкой очистки» имеет то преимущество, что 9X_css-layout позволяет позиционированным элементам выходить 9X_min-width за пределы контейнера за счет более сложного 9X_clearfix CSS.
Это решение довольно старое, но вы можете 9X_max-height узнать все о Easy Clearing on Position Is 9X_dynamic-css Everything: http://www.positioniseverything.net/easyclearing.html
Элемент, использующий свойство "clear"
Быстрое и грязное решение (с 9X_min-height некоторыми недостатками), когда вы быстро 9X_max-height что-то складываете:
Недостатки
- Он не реагирует на запросы и, следовательно, может не дать желаемого эффекта, если стили макета меняются на основе медиа-запросов. Решение на чистом CSS является более идеальным.
- Он добавляет разметку html без обязательного добавления какого-либо семантического значения.
- Для каждого экземпляра требуется встроенное определение и решение, а не ссылка на класс на одно решение «clearfix» в CSS и ссылки на него в HTML.
- Это затрудняет работу с кодом для других, поскольку им, возможно, придется написать больше приемов, чтобы обойти это.
- В будущем, когда вам понадобится / вы захотите использовать другое решение clearfix, вам не придется возвращаться и удалять все теги
, разбросанные по разметке.
- Использовать хаки не идеально, но метод: after тоже неплох! Итак, ...
Ответ #2
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Какие проблемы мы пытаемся решить?
При использовании плавающих предметов следует 9X_clearfix учитывать два важных момента:
-
Содержит потомки с плавающей точкой. Это означает, что 9X_font-weight рассматриваемый элемент становится достаточно 9X_css-columns высоким, чтобы обернуть все плавающие потомки. (Они 9X_css2 не выходят наружу.)
-
Изоляция потомков от внешних поплавков. Это означает, что потомки 9X_clearfix внутри элемента должны иметь возможность 9X_clearfix использовать
clear: both
и не должны взаимодействовать 9X_css-layout с поплавками вне элемента.
Контексты форматирования блоков
Есть только один 9X_css-reset способ сделать и то, и другое. И это для 9X_css-columns создания нового block formatting context. Элементы, которые определяют 9X_max-width контекст форматирования блока, представляют 9X_box-shadow собой изолированный прямоугольник, в котором 9X_css-reset поплавки взаимодействуют друг с другом. Контекст 9X_inline-block форматирования блока всегда будет достаточно 9X_inline-block высоким, чтобы визуально обернуть его плавающие 9X_css-layout потомки, и никакие поплавки вне контекста 9X_max-height форматирования блока не могут взаимодействовать 9X_max-width с элементами внутри. Эта двусторонняя изоляция 9X_min-width - именно то, что вам нужно. В IE эта же 9X_css-layout концепция называется hasLayout, которую можно установить 9X_css-classes с помощью zoom: 1
.
Есть несколько способов установить 9X_inline-block контекст форматирования блока, но я рекомендую 9X_min-width решение display: inline-block
с width: 100%
. (Конечно, есть usual caveats с использованием 9X_clearfix width: 100%
, поэтому используйте box-sizing: border-box
или поместите padding
, margin
и 9X_css3 border
в другой элемент.)
Самое надежное решение
Вероятно, наиболее распространенное 9X_min-height применение float - это макет с двумя столбцами. (Можно 9X_max-height расширить до трех столбцов.)
Сначала структура 9X_max-width разметки.
main content main content that uses clear: both
А теперь CSS.
/* Should contain all floated and non-floated content, so it needs to * establish a new block formatting context without using overflow: hidden. */ .container { display: inline-block; width: 100%; zoom: 1; /* new block formatting context via hasLayout for IE 6/7 */ } /* Fixed-width floated sidebar. */ .sidebar { float: left; width: 160px; } /* Needs to make space for the sidebar. */ .main { margin-left: 160px; } /* Establishes a new block formatting context to insulate descendants from * the floating sidebar. */ .main-content { display: inline-block; width: 100%; zoom: 1; /* new block formatting context via hasLayout for IE 6/7 */ }
Попробуйте сами
Перейдите на JS Bin, поиграйте 9X_css-classes с кодом и посмотрите, как это решение создается 9X_font-weight с нуля.
Традиционные методы clearfix считаются вредными
Проблема с традиционным clearfix solutions заключается 9X_box-shadow в том, что они используют две разные концепции 9X_max-width визуализации для достижения одной и той 9X_inline-block же цели для IE и всех остальных. В IE они 9X_css-classes используют hasLayout для создания нового 9X_css2 контекста форматирования блока, но для всех 9X_css-reset остальных они используют сгенерированные 9X_font-weight блоки (:after
) с clear: both
, который не устанавливает новый 9X_font-weight контекст форматирования блока. Это означает, что 9X_css вещи не будут вести себя одинаково во всех 9X_min-width ситуациях. Чтобы объяснить, почему это плохо, см. Everything you Know about Clearfix is Wrong.
- Узнайте больше о hasLayout на http://stackoverflow.com/questions/1794350/what-is-haslayout. Я считаю это синонимом установления нового контекста форматирования блока. Элементы, которые делают это, по сути, несут ответст ...
Ответ #3
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Новый стандарт, используемый Inuit.css и Bourbon - двумя 9X_inline-block очень широко используемыми и хорошо поддерживаемыми 9X_css-reset фреймворками CSS / Sass:
.btcf:after { content:""; display:block; clear:both; }
Примечания
Имейте в виду, что 9X_inline-block clearfixes - это, по сути, взлом того, что 9X_css-layout макеты flexbox теперь могут предоставлять 9X_dynamic-css в much smarter way. CSS float изначально создавался для 9X_css-classes обтекания встроенного контента - как изображения 9X_css-columns в длинной текстовой статье - а не для макетов 9X_css-layout сетки и тому подобного. Если ваш target browsers support flexbox, стоит 9X_css-columns изучить его.
Это не поддерживает IE7. Вам 9X_css-reset не следует поддерживать IE7. Это по-прежнему подвергает 9X_min-height пользователей незащищенным уязвимостям безопасности 9X_css-classes и усложняет жизнь всем остальным веб-разработчикам, поскольку 9X_css2 снижает необходимость перехода пользователей 9X_box-shadow и организаций на современные браузеры.
Это 9X_box-shadow исправление было announced and explained by Thierry Koblentz в июле 2012 года. Оно 9X_css2 снижает ненужный вес Nicolas Gallagher's 2011 micro-clearfix. В процессе он освобождает 9X_max-width псевдоэлемент для вашего собственного использования. Он 9X_css-layout был обновлен, чтобы использовать display: block
вместо 9X_min-width display: table
(опять же, кредит Тьерри Кобленца).
- @ Джастин согласился; ваша личная аналитика выложит это. Хотя я не думаю, что сайт обратного отсчета обновлялся какое-то время - лучше всего использовать [caniuse's stats] (http://caniuse.com/usage_table.php), ко ...
Ответ #4
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я рекомендую использовать следующее, взятое 9X_min-height из http://html5boilerplate.com/
/* >> The Magnificent CLEARFIX << */
.clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { display: inline-block; } * html .clearfix { height: 1%; } /* Hides from IE-mac \*/ .clearfix { display: block; }
- Кто сейчас помнит IE-mac? Зачем все усложнять из-за проблем, которые больше не ак ...
Ответ #5
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Свойство переполнения можно использовать 9X_css2 для очистки плавающих объектов без дополнительной 9X_inline-block разметки:
.container { overflow: hidden; }
Это работает для всех браузеров, кроме 9X_max-width IE6, где все, что вам нужно сделать, это 9X_dynamic-css включить hasLayout (я предпочитаю масштабирование):
.container { zoom: 1; }
http://www.quirksmode.org/css/clearing.html
- И это проблема, если вы действительно хотите, чтобы определенный контент висел вне ...
Ответ #6
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я обнаружил ошибку в официальном методе 9X_min-height CLEARFIX: DOT не имеет размера шрифта. И 9X_clearfix если вы установите height = 0
и первый элемент в вашем 9X_max-height DOM-дереве будет иметь класс clearfix, у 9X_css-reset вас всегда будет поле в 12 пикселей внизу 9X_min-height страницы :)
Это нужно исправить вот так:
/* float clearing for everyone else */ .clearfix:after{ clear: both; content: "."; display: block; height: 0; visibility: hidden; font-size: 0; }
Теперь 9X_min-height это часть YAML-Layout ... Вы только посмотрите 9X_css-reset - это очень интересно! http://www.yaml.de/en/home.html
Ответ #7
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Это довольно аккуратное решение:
/* For modern browsers */ .cf:before, .cf:after { content:""; display:table; } .cf:after { clear:both; } /* For IE 6/7 (trigger hasLayout) */ .cf { zoom:1; }
Известно, что 9X_dynamic-css он работает в Firefox 3.5+, Safari 4+, Chrome, Opera 9X_inline-block 9+, IE 6+
Включая селектор: before для очистки 9X_css2 поплавков не требуется, но это предотвращает 9X_max-height уменьшение верхнего поля в современных браузерах. Этот гарантирует, что 9X_css есть визуальная согласованность с IE 6/7, когда 9X_max-height масштаб: 1 применено.
От http://nicolasgallagher.com/micro-clearfix-hack/
- Да, по состоянию на середину 2011 года это мое любимое решение. Это позволяет вам при необходимости размещать объекты за пределами содержащего их поля (избегая `overfl ...
Ответ #8
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Clearfix из начальной загрузки:
.clearfix { *zoom: 1; } .clearfix:before, .clearfix:after { display: table; line-height: 0; content: ""; } .clearfix:after { clear: both; }
9X_css-classes
Ответ #9
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я просто использую: -
.clear:after{ clear: both; content: ""; display: block; }
Лучше всего работает 9X_max-width и совместим с IE8 + :)
- ... Вот почему он сказал «совместим с IE8 +». Большинству веб-сайтов больше не требуется поддерживать IE7, его использование составляет менее 1% во всем мире. http:// ...
Ответ #10
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Учитывая огромное количество ответов, я 9X_max-height не собирался публиковать. Однако этот метод 9X_css-classes может кому-то помочь, как и мне.
По возможности держитесь подальше от поплавков
Стоит упомянуть, что 9X_max-height я избегаю таких случаев, как лихорадка Эбола. Есть 9X_inline-block много причин, и я не одинок; Прочтите ответ 9X_max-width Рикудо о what is a clearfix, и вы поймете, что я имею в виду. По 9X_css-layout его собственным словам: ...the use of floated elements for layout is getting more and more discouraged with the use of better alternatives...
Есть и другие хорошие 9X_min-height (а иногда и лучшие) варианты, кроме поплавков. По 9X_max-width мере развития и совершенствования технологий, flexbox (и 9X_max-height другие методы) будут широко применяться, а 9X_css-layout плавающие значения станут просто плохой 9X_font-weight памятью. Может быть, CSS4?
Неправильное поведение и неудачная очистка поплавков
Во-первых, иногда 9X_inline-block вам может казаться, что вы в безопасности 9X_css3 от поплавков, пока ваш спасательный круг 9X_css3 не будет пробит и ваш поток HTML не начнет 9X_css-reset тонуть:
В коде http://codepen.io/omarjuvera/pen/jEXBya ниже практика очистки плавающего 9X_max-height объекта с помощью
1st
2nd
3nd
Below
CSS
div { border: 1px solid #f00; width: 200px; height: 100px; } div.floated { float: left; } .clear { clear: both; } section { border: 1px solid #f0f; }
Однако как раз тогда, когда вы подумали, что 9X_inline-block ваш поплавок достоин паруса ... бум! По 9X_max-width мере того, как размер экрана становится 9X_box-shadow все меньше и меньше, вы видите странное 9X_min-width поведение, как на рисунке ниже (тот же http://codepen.io/omarjuvera/pen/jEXBya):
Почему это должно вас волновать? Примерно 9X_css2 80% (или более) используемых устройств - это 9X_clearfix мобильные устройства с маленькими экранами. Настольные 9X_min-height компьютеры / ноутбуки больше не король.
На этом не заканчивается
Это 9X_inline-block не единственная проблема с поплавками. Их 9X_clearfix много, но в этом примере некоторые могут 9X_css сказать all you have to do is to place your floats in a container
. Но, как вы можете видеть в codepen и 9X_css-reset на графике, это не так. Очевидно, это усугубило 9X_clearfix ситуацию:
HTML
1st
2nd
3nd
Below
CSS
#container { min-height: 100px; /* To prevent it from collapsing */ border: 1px solid #0f0; } .floated { float: left; border: 1px solid #f00; width: 200px; height: 100px; } .clear { clear: both; } section { border: 1px solid #f0f; }
Что до результата?
Это же 9X_font-weight *** то же самое!
По крайней мере, вы знаете, что 9X_min-height вы начнете вечеринку CSS, приглашая на вечеринку 9X_css-classes все виды селекторов и свойств; внесение 9X_css-columns большего беспорядка в ваш CSS, чем то, с 9X_box-shadow чего вы начали. Просто чтобы починить поплавок.
CSS Clearfix спешит на помощь
Этот 9X_inline-block простой и легко адаптируемый фрагмент CSS 9X_max-width - прекрасное средство и «спаситель»:
.clearfix:before, .clearfix:after { content: ""; display: table; clear: both; zoom: 1; /* ie 6/7 */ }
Вот 9X_css и все! Это действительно работает без нарушения 9X_min-width семантики, и я упоминал it works?:
Из того же образца 9X_css2 ... HTML
1st
2nd
3nd
Below
CSS
div.floated { float: left; border: 1px solid #f00; width: 200px; height: 100px; } section { border: 4px solid #00f; } .clearfix:before, .clearfix:after { content: ""; display: table; clear: both; zoom: 1; /* ie 6/7 */ }
Теперь нам больше не нужен
@media
в 9X_min-height его простейшей форме. Другими словами, он 9X_max-height будет держать ваш плавающий контейнер под 9X_css-columns контролем и предотвращать затопления. Наконец, он 9X_css-classes обеспечивает поддержку старых браузеров 9X_css-layout в одном маленьком каратэ =)
Вот и снова clearfix
.clearfix:before, .clearfix:after { content: ""; display: table; clear: both; zoom: 1; /* ie 6/7 */ }
- Причина, по которой элемент с именем класса `clear` не работает, заключается в том, что ваш атрибу ...
Ответ #11
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я всегда размещаю основные разделы моей 9X_css-columns сетки и применяю clear: both;
к нижнему колонтитулу. Для 9X_max-width этого не требуется дополнительный div или 9X_max-height класс.
Ответ #12
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
честно; все решения кажутся хаком для исправления 9X_max-height ошибки рендеринга ... я ошибаюсь?
Я считаю, что 9X_min-width
самый простой и легкий. видение class="clearfix"
повсюду 9X_inline-block не может поразить чувства человека, который 9X_max-height возражает против посторонних элементов разметки, не 9X_min-height так ли? вы просто рисуете проблему на другом 9X_box-shadow холсте.
Я также использую решение display: hidden
, которое 9X_clearfix великолепно и не требует дополнительных 9X_css2 объявлений классов или разметки html ... но 9X_dynamic-css иногда вам нужны элементы для переполнения 9X_min-height контейнера, например. красивые ленты и пояса
- `overflow: hidden`, я думаю, вы имеете в виду<p><s ...
Ответ #13
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
.clearFix:after { content: ""; display: table; clear: both; }
9X_inline-block
Ответ #14
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Новое отображаемое значение отображается 9X_max-width в задании в одну строку.
display: flow-root;
Из спецификации 9X_clearfix W3: «Элемент создает блок контейнера блока 9X_max-width и размещает его содержимое с использованием 9X_css-classes схемы потока. Он всегда устанавливает новый 9X_max-width контекст форматирования блока для своего 9X_max-width содержимого».
Информация: https://www.w3.org/TR/css-display-3/#valdef-display-flow-root https://www.chromestatus.com/feature/5769454877147136
※ Как показано 9X_clearfix в приведенной выше ссылке, поддержка в настоящее 9X_css время ограничена, поэтому может быть полезна 9X_css-layout резервная поддержка, как показано ниже: https://github.com/fliptheweb/postcss-flow-root
Ответ #15
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Использование overflow:hidden
/ auto
и высоты для ie6 будет 9X_min-height достаточно, если у плавающего контейнера 9X_max-width есть родительский элемент.
Любой из #test 9X_box-shadow может работать, если HTML, указанный ниже, очищает 9X_css-classes числа с плавающей запятой.
#test { overflow:hidden; // or auto; _height:1%; forces hasLayout in IE6 }
В случаях, когда 9X_css-classes это отказывается работать с ie6, просто 9X_inline-block поместите родительский объект, чтобы очистить 9X_clearfix float.
#test { float: left; // using float to clear float width: 99%; }
Еще никогда особо не требовалось никакой 9X_dynamic-css другой очистки. Может, так я пишу свой HTML.
- Я хотел бы изучить ваш способ написания HTML без очистки каких-либо элементов. Н ...
Ответ #16
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
С LESS (http://lesscss.org/) можно создать удобный помощник 9X_max-width clearfix:
.clearfix() { zoom: 1; &:before { content: ''; display: block; } &:after { content: ''; display: table; clear: both; } }
А затем используйте его с проблемными 9X_min-height контейнерами, например:
/* LESS */ div#container { .clearfix(); }
Ответ #17
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
С SASS устранение неполадок:
@mixin clearfix { &:before, &:after { content: ''; display: table; } &:after { clear: both; } *zoom: 1; }
и используется 9X_css-classes как:
.container { @include clearfix; }
если вам нужен новый clearfix:
@mixin newclearfix { &:after { content:""; display:table; clear:both; } }
Ответ #18
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я пробовал все эти решения, при использовании 9X_clearfix приведенного ниже кода к элементу автоматически 9X_css3 добавляется большой запас:
.clearfix:after { visibility: hidden; display: block; content: "."; clear: both; height: 0; }
Наконец, я решил 9X_css-layout проблему полей, добавив font-size: 0;
в приведенный выше 9X_css CSS.
- Это потому, что вы добавляете строку ...
Ответ #19
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я бы тоже использовал #content
, чтобы оба столбца 9X_min-height содержали числа с плавающей запятой. Также 9X_css3 потому, что это позволит вам очищать элементы 9X_css-classes внутри #content
, не очищая боковую панель.
То же 9X_css3 самое и с оболочкой, вам нужно сделать ее 9X_max-width контекстом форматирования блока, чтобы обернуть 9X_box-shadow два столбца.
В этой статье упоминается несколько 9X_css-layout триггеров, которые вы можете использовать: block formatting contexts.
Ответ #20
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Clearfix - это способ автоматического удаления 9X_max-height элемента после себя, так что вам не нужно 9X_min-width добавлять дополнительную разметку.
.clearfix:after { content: " "; /* Older browser do not support empty content */ visibility: hidden; display: block; height: 0; clear: both; } .cleaner { clear: both; }
Обычно 9X_clearfix вам нужно сделать следующее:
Sidebar
С clearfix вам 9X_font-weight нужно только
Sidebar
Ответ #21
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Зачем просто пытаться использовать css hack, чтобы 9X_css-reset сделать то, что одна строка HTML выполняет 9X_clearfix эту работу. А почему бы не использовать 9X_min-width семантический html tu put break для возврата 9X_css-classes к строке?
Для меня действительно лучше использовать:
И 9X_css-columns если вам не нужен какой-либо стиль в вашем 9X_dynamic-css html, вам просто нужно использовать класс 9X_css-classes для вашего перерыва и поместите .clear { clear:both; }
в свой 9X_clearfix CSS.
Преимущество этого:
- Семантическое использование html для возврата к строке
- Если CSS не загружен, он будет работать.
- Нет необходимости в дополнительном коде CSS и взломе
- нет необходимости моделировать br с помощью CSS, он уже существует в HTML
Ответ #22
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Предполагая, что вы используете эту HTML-структуру:
Вот 9X_min-height CSS, который я бы использовал:
div#container { overflow: hidden; /* makes element contain floated child elements */ } div#content, div#sidebar { float: left; display: inline; /* preemptively fixes IE6 dobule-margin bug */ }
Я использую 9X_font-weight этот набор все время, и он отлично работает 9X_inline-block у меня даже в IE6.
Ответ #23
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
Я всегда использую micro-clearfix:
.cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } /** * For IE 6/7 only */ .cf { *zoom: 1; }
В Cascade Framework я даже применяю его 9X_max-height по умолчанию к элементам уровня блока. ИМО, применяя 9X_clearfix его по умолчанию к элементам уровня блока, дает 9X_inline-block элементам уровня блока более интуитивное 9X_inline-block поведение, чем их традиционное поведение. Это 9X_max-width также упростило мне добавление поддержки 9X_inline-block старых браузеров в Cascade Framework (который 9X_box-shadow поддерживает IE6-8, а также современные 9X_min-width браузеры).
Ответ #24
Ответ на вопрос: Какие методы «clearfix» я могу использовать?
В отличие от других clearfix, здесь открытый без контейнеров
Другие clearfixes либо требуют, чтобы плавающий 9X_font-weight элемент находился в хорошо выделенном контейнере, либо 9X_min-height нужен дополнительный семантически пустой 9X_min-height
. И наоборот, четкое разделение содержимого 9X_css и разметки требует строгого решения CSS для этой проблемы.
Тот 9X_min-height факт, что нужно отметить конец поплавка, не 9X_css-layout позволяет использовать unattended CSS typesetting.
Если ваша цель - последнее, то 9X_max-width плавающий объект следует оставить открытым 9X_min-width для чего-либо (абзацы, упорядоченные и неупорядоченные 9X_css2 списки и т. д.), чтобы обернуть его вокруг, пока 9X_min-width не встретится "clearfix". Например, clearfix 9X_css-layout может быть установлен новым заголовком.
Вот 9X_box-shadow почему я использую следующий clearfix с 9X_css-classes новыми заголовками:
h1 { clear: both; display: inline-block; width: 100%; }
Это решение широко используется 9X_css-columns в my website для решения проблемы: текст рядом с плавающей 9X_css миниатюрой короткий, а верхнее поле следующего 9X_inline-block очищающего объекта не соблюдается.
Он также 9X_css-classes предотвращает любое ручное вмешательство 9X_css-reset при автоматическом создании тега PDFs с сайта. Вот 9X_css3 example page.
-
14
-
8
-
5
-
13
-
7
-
18
-
18
-
11
-
11
-
3
-
9
-
7
-
4
-
16
-
9
-
4
-
11
-
3
-
7
-
9
-
4
-
11
-
8
-
6
-
23
-
11
-
4
-
15
-
24
-
7
-
6
-
21
-
57
-
33
-
4
-
5
-
5
-
19
-
8
-
7
-
5
-
116
-
6
-
46
-
3
-
6
-
6
-
4
-
14
-
5