CSS - Свойство Float: Пособие для начинающих

Здравствуйте, будущие маги CSS! Сегодня мы окунемся в神奇ный мир свойства CSS float. Не волнуйтесь, если вы никогда не писали ни строчки кода - к концу этого руководства вы будете浮動要素, как профессионал!

CSS - Float

Что такое свойство Float?

Прежде чем окунуться в深海, начнем с азов. Свойство float - это магическая палочка в CSS, которая позволяет элементам浮動 влево или вправо от их контейнера. Представьте, что вы расставляете мебель в комнате - свойство float позволяет вам толкать вещи к сторонам, оставляя место для других элементов, чтобы они обтекали их.

Possible Values (Возможные значения)

Свойство float может принимать несколько значений, каждое из которых имеет свою особую силу:

Значение Описание
left 浮動元素 к левому краю
right 浮動元素 к правому краю
none Элемент не浮動ается (по умолчанию)
inherit Наследует значение float от родителя

Применяется к

Свойство float может быть применено к большинству HTML-элементов, ноаще всего его используют с:

  • Изображениями
  • Divami
  • Абзацами
  • Заголовками

Синтаксис

Вот базовый синтаксис для использования свойства float:

селектор {
float: значение;
}

например:

img {
float: left;
}

Это сделает все изображения на вашей странице浮動ающимися влево.

CSS Float - Равные по ширине столбцы

Давайте начнем с практического примера. Представьте, что вы создаете веб-сайт для кондитерской, и хотите display три вида пирожных рядом. Вот как вы можете использовать float для создания равных по ширине столбцов:

<div class="pastry-container">
<div class="pastry">Croissants</div>
<div class="pastry">Éclairs</div>
<div class="pastry">Macarons</div>
</div>
.pastry-container {
width: 100%;
}

.pastry {
float: left;
width: 33.33%;
padding: 15px;
box-sizing: border-box;
}

В этом примере мы浮動аем каждый элемент с пирожным влево и даем ему ширину 33.33% (100% разделено на 3). box-sizing: border-box обеспечивает то, что отступы включены в расчет ширины.

CSS Float - Равные по высоте столбцы

Теперь представьте, что вы хотите, чтобы эти столбцы имели одинаковую высоту, независимо от содержимого. Мы можем использовать一个小кий трюк с отступами и margin:

.pastry-container {
overflow: hidden;
}

.pastry {
float: left;
width: 33.33%;
padding-bottom: 500px;
margin-bottom: -500px;
}

Это создает иллюзию одинаковой высоты столбцов, добавляя большой padding-bottom и равный отрицательный margin-bottom.

CSS Float - Изображения рядом

Давайте добавим несколько аппетитных изображений пирожных на наш веб-сайт кондитерской:

<div class="image-container">
<img src="croissant.jpg" alt="Croissant">
<img src="eclair.jpg" alt="Éclair">
<img src="macaron.jpg" alt="Macaron">
</div>
.image-container {
width: 100%;
}

.image-container img {
float: left;
width: 33.33%;
padding: 5px;
box-sizing: border-box;
}

Это отобразит наши изображения пирожных рядом, каждый из которых займет треть ширины контейнера.

CSS Float - Гибкие ящики

Но что, если мы хотим, чтобы наш макет был более гибким? Встречайте flexbox, супергероя современных макетов CSS:

.pastry-container {
display: flex;
flex-wrap: wrap;
}

.pastry {
flex: 1 0 300px;
margin: 5px;
}

Это создает гибкий макет, где каждый ящик с пирожным будет не менее 300px в ширину и будет увеличиваться, чтобы заполнить доступное пространство.

CSS Float - Меню навигации

Floatы часто используются для создания горизонтальных меню навигации. Давайте создадим меню для нашей кондитерской:

<nav>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#menu">Menu</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
nav ul {
list-style-type: none;
padding: 0;
}

nav li {
float: left;
}

nav a {
display: block;
padding: 10px 20px;
text-decoration: none;
color: #333;
}

Это создает горизонтальное меню навигации с каждым элементом,浮動ающимися влево.

CSS Float - Веб-макет

Floatы могут быть использованы для создания целых веб-макетов. Вот простой пример двухколоночного макета:

<div class="container">
<header>Welcome to Our Bakery</header>
<nav>
<!-- Элементы навигации здесь -->
</nav>
<main>
<article>Our Story</article>
<aside>Today's Special</aside>
</main>
<footer>Contact Us</footer>
</div>
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
}

header, nav, footer {
width: 100%;
clear: both;
}

main {
width: 100%;
}

article {
float: left;
width: 70%;
}

aside {
float: right;
width: 25%;
}

Это создает макет с основной областью содержимого и панелью侧面.

CSS Float - Абзац

Floatы можно использовать, чтобы обернуть текст вокруг изображений:

<div class="content">
<img src="baker.jpg" alt="Our Master Baker" class="float-left">
<p>Meet our master baker, Chef Pierre. With over 30 years of experience...</p>
</div>
.float-left {
float: left;
margin-right: 15px;
}

Это сделает текст обернутым вокруг изображения нашего главного пекаря.

CSS Float - Изображения с отступами

Добавление отступов к浮動анным изображениям может улучшить читаемость:

img {
float: left;
margin: 0 15px 15px 0;
}

Это добавляет немного места вокруг наших浮動анных изображений.

CSS Float - Нет浮動ации

Иногда вам нужно предотвратить浮動ацию элемента. Свойство clear приходит на помощь:

.no-float {
clear: both;
}

Это обеспечивает, чтобы элемент с классом no-float появился_below любого浮動анного элемента.

CSS Float -浮動ация влево или вправо

Не забывайте, что вы можете浮動ать элементы влево или вправо:

.float-left {
float: left;
}

.float-right {
float: right;
}

CSS Float - Перекрытие изображений

Будьте осторожны! Floatные элементы могут перекрываться, если недостаточно места. Вы можете предотвратить это с помощью правильной清理ки:

.clearfix::after {
content: "";
display: table;
clear: both;
}

Добавьте этот класс к родительскому контейнеру浮動анных элементов, чтобы предотвратить перекрытие.

CSS Float - Изображения не смежные

Иногда вы хотите, чтобы浮動анные изображения оставались в исходном порядке:

img {
float: left;
clear: left;
}

Это обеспечивает, чтобы каждое изображение начиналось с новой строки.

CSS Float -浮動ация_below предшественников

Чтобы сделать элементы浮動ающими_below своих предшественников:

.float-below {
clear: both;
float: left;
}

Это очищает любые предыдущие浮動ации и затем浮動ает элемент.

CSS Float - На новую строку

Чтобы强制 элемент перейти на новую строку после浮動анных элементов:

.new-line {
clear: both;
}

CSS Float - Связанные значения

Вот таблица связанных свойств и значений:

Свойство Значения
float left, right, none, inherit
clear left, right, both, none, inherit
overflow visible, hidden, scroll, auto

И вот вы,folks! Вы только что сделали свои первые шаги в мир CSS浮動ов. Помните, что практика makes perfect, так что не бойтесь экспериментировать с этими техниками. Before you know it, вы будете создавать красивые,浮動анные макеты, которые сделали бы гордым даже самого опытного веб-дизайнера. Happy coding!

Credits: Image by storyset