Большинству элементов в HTML, как правило, присваивается определённая высота и ширина. Задать данные параметры в CSS достаточно легко, а как результат — практично. Используются для этого уже известные Вам свойства height и width. Однако, в данном уроке мы ещё поговорим о не фиксированной ширине и высоте или резиновой, то есть в зависимости от ширины самого окна. Приступим)
width
Это свойство устанавливает определённую ширину HTML элемента. Значение может быть указано в пикселях, процентах (другие величины используются реже).
.myBlock {
width: 400px; /* ширина 400 пикселей */
color: #f1f1f1; /* светло-серый блок */
}
Или же в процентах:
.myBlockPercent50 {
width: 50%; /* ширина 50% от ширины блока или окна (если не внутри блока с фиксированной шириной) */
color: #f1f1f1; /* светло-серый блок */
}
Соответственно получаем блок, который всегда будет по ширине составлять половину от родительского.
Теперь о самом интересном. У width есть такие параметры, которые указывают максимальную или минимальную ширину. Это свойства min-width и max-width соответственно. Указывать для них значения можно также и в пикселях, и в процентах, и в других величинах. Данные свойства — это основа для создания резинового и адаптивного дизайнов ().
Пример адаптивного дизайна. Посмотри, изменяя размеры окна бразура:
Демонстрация Скачать исходники
Это я, конечно, забежал вперёд. Но вы должны понимать что и зачем нужно. Да и потрогать приятный результат)
Как Вы уже поняли, с помощью этих свойств можно более гибко обращаться с элементами на странице, не искажая содержимого. Как это работает? Рассмотрим код.
Блок с данными свойствами при ширине родителя в 200 пикселей будет принимать соответствующее значение, но если родительский блок будет больше, например, 1000 пикселей, то он уже примет свою максимальную ширину, то есть 800 пикселей. То есть он будет увеличиваться пока ширина родительского блока не будет 801 пиксель и больше. Далее блок block всегда будет иметь свою максимально разрешённую ширину в 800 пикселей.
Демонстрация Скачать исходники
height
Это свойство отвечает за высоту элемента. В качестве величины используются всё те же пригодные для CSS. Чаще всего те же проценты и пиксели.
.info {
height: 200px; /* высота блока будет 200 пикселей */
padding: 10px; /* повторяем про отступы внутри блока =) */
}
Что логично, у высоты можно указывать минимальные и максимальные значения высоты для элемента свойствами min-height и max-height соответственно.
.info {
max-height: 360px; /* максимальная высота блока */
min-height: 120px; /* минимальная высота блока */
}
Как видите, свойства можно, а зачастую и нужно использовать в паре.
Или комбинировать величины:
.content {
height: 100%; /* высота всегда будет 100% */
width: 760px; /* а вот ширина фиксированная 760 пикселей */
}
Если остались вопросы, пишите в комментариях!
Спасибо за внимание! Успехов в вёрстке!)
Сохраняем пропорции высоты и ширины элемента при изменении ширины контента на чистом CSS
Как пропорционально уменьшать ширину и высоту различных элементов при изменении ширины родительского контейнера?
Для изображений это делается очень просто, задаем свойству height значение auto, при этом максимальную ширину изображения ограничиваем шириной родительского контейнера max-width: 100%;
img{
max-width: 100%;
height: auto;
}
Проблема в том, что мы не можем задать height: auto; для блочных элементов, например для DIV. В данном случае 100% – это будет высота родителя.
Решение проблемы
HTML
Нам нужны два блочных элемента для достижения желаемого поведения. Нет изображений, нет Javascript.
Итак, что это? Мы определяем псевдоэлемент для нашего ящика и задаем ему margin-top 100%. Поскольку это 100% значение относится к ширине элемента … вы получаете его (height: 0; padding-bottom: 100%; также будет работать, но тогда вы должны отрегулировать значение padding-bottom каждый раз, когда вы меняете ширину).
Таким образом, наш блок уже выше ширины. Если вы хотите отображать только несколько цветных блоков, тогда уже все готово. Но поскольку пользовательский интерфейс намного сложнее, и если вы также предоставляете некоторый контент, мы добавляем контент в наш блок . box.
Контент
И вот трюк: мы просто позиционируем блок контента как абсолютный со всеми четырьмя ориентациями, установленными в 0. Это просто покрывает родительский элемент полностью, независимо от того, какой размер он имеет.
Поскольку IE такой IE, и особенно IE7 – это все, но только не браузер, вы должны сами создать элемент вместо псевдоэлемента в своей разметке, если хотите поддержать IE. Или бросьте на него Javascript, пока он, надеюсь, не сломается. Навсегда. Мой вольный перевод статьи http://www.mademyday.de/css-height-equals-width-with-pure-css.html.
Рабочий пример на CodePen:
See the Pen Height equals width with pure css by Denis (@deniscreative) on CodePen.0
Вариант №2 – Сохраняем пропорции высоты и ширины элемента при изменении ширины контента на чистом CSS без псевдоэлементов
Есть второй вариант без псевдоэлементов, но при его использовании блок всегда имеет ширину 100%, поэтому если нужно несколько таких блоков в ряд, то они должны быть помещены в какой-то родитель, у которого уже будет задана нужная ширина относительно остальных элементов на странице.
HTML
<div>
<div>Some text</div>
</div>
CSS
.box {
background-color: red;
width: 100%;
padding-top: 100%; /* 1:1 Aspect Ratio */
position: relative;
}
/* If you want text inside of the container */
.
.ratio16_9{
padding-top: 56.25%; /* 16:9 Aspect Ratio */
}
.ratio4_3{
padding-top: 75%; /* 4:3 Aspect Ratio */
}
.ratio3_2{
padding-top: 66.66%; /* 3:2 Aspect Ratio */
}
/* Other ratios */
.ratio8_5{
padding-top: 62.5%; /* 8:5 Aspect Ratio */
}
Рабочий пример на CodePen:
See the Pen Height equals width with pure css without pseudoelement by Denis (@deniscreative) on CodePen.0
html — указать явную ширину и высоту для тега изображения
спросил
Изменено
2 месяца назад
Просмотрено
6к раз
Lighthours и Pagespeed Insights продолжают подсказывать мне, чтобы я определял явную ширину и высоту для моих изображений.
Но большинство моих изображений берутся из тегов изображений, поскольку размеры изображений для мобильных и настольных компьютеров различаются. Как я могу указать разные значения ширины и высоты в соответствии с выбранным изображением?
<картинка>
html
изображение
google-pagespeed
pagespeed-insights
1
В дальнейшем можно сделать так:
<картинка>
картинка>
В Chrome это уже сделано — пример
1
Добавьте реальную ширину и высоту файла к вашему тегу img по умолчанию, независимо от того, какой источник файла в конечном итоге берет. Это, вероятно, успокоит Lighthouse и PagesSpeed. Это улучшит рендеринг изображения, поскольку браузеру не нужно загружать все изображение перед рендерингом, потому что вы уже указали размер.
Однако, если вы хотите указать также размер исходного кода, вам придется использовать размеры атрибут:
Размеры
Список исходных размеров, описывающий конечную визуализируемую ширину
изображение, представленное источником. Каждый исходный размер состоит из
разделенный запятыми список пар длина-условие мультимедиа. Эта информация
используется браузером, чтобы определить перед выводом страницы, какой
изображение, определенное в srcset для использования. Обратите внимание, что размеры будут иметь свои
эффект, только если дескрипторы измерения ширины предоставлены с srcset вместо значений соотношения пикселей (например, 200w вместо 2x).
Атрибут размеров действует только тогда, когда элемент
прямой потомок элемента .
Вы также можете сделать это непосредственно над тегом img:
Второе значение каждого набора размеров — это реальная ширина изображения. В то время как первый эквивалентен атрибуту media. Последний не использует медиа-значение, как тот, который установлен для любого другого размера экрана.
Вы видите предупреждение, потому что вы не указали
ширину и высоту для ваших IMG, и чтобы решить эту проблему, вы должны указать их оба. Это зависит от вашего проекта, но, поскольку вас интересует только просмотр изображений на рабочем столе и мобильных устройствах, вам лучше добавить max-width: 100% при использовании фиксированной высоты и max-height: 100% при использовании фиксированной ширины для ваших изображений, , а если не использовать их оба
см. пример ниже:
<изображение/>
<изображение/>
6
Когда дело доходит до изображений, лучше сделать более одной копии изображения для каждого конкретного размера, копию, например
В приведенном выше примере мы используем атрибут srcset, чтобы добавить более одной копии для каждого размера экрана.
вы можете прочитать больше об этом здесь
и о высоте и ширине вы добавите атрибут высоты и ширины для изображения по умолчанию
Зарегистрируйтесь или войдите
Зарегистрироваться через Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Стили ширины и высоты: MGA
О DoITHTML TutorialJavaScript TutorialXML TutorialPHP Tutorial
Глава 1. Создание веб-страницГлава 2. Базовый макет документаГлава 3. Основные стили документаГлава 4. Форматирование текстаГлава 5. Графические изображенияГлава 6. Применение специальных стилейГлава 7. Связывание страницГлава 8. 9 Использование таблиц Воспроизведение мультимедиаГлава 10. Создание формГлава 11. Дизайн веб-сайтовHTML/CSS Приложение
Применение стилейСтили полейСтили выравниванияСтили ширины и высотыОсновные цветовые стилиДиапазоны и деленияСелекторы идентификаторов и классов
Стили ширины и высоты
Существует два общих свойства стиля , ширина и , высота , которые можно использовать для изменения размера любого элемента страницы.
Свойство width дает ширину элемента в пикселях или в процентах от ширины страницы.
Свойство height устанавливает высоту элемента в пикселях или в процентах от высоты страницы.
Собственность
:
Значения
ширина
n пикселей п %
высота
Рисунок 3-21. Свойства и значения ширины и высоты.
В последующих руководствах эти свойства применяются к широкому спектру элементов страницы. За это
первоначальное введение, ширина и высота применяются к горизонтальным линейкам и графическим изображениям для иллюстрации
их использование.
Ширина и высота линейки
Как описано ранее, содержимое уровня абзаца может быть визуально и тематически разделено путем отображения
горизонтальное правило между ними. Это делается с помощью тега для рисования линии поперек страницы.
Правило по умолчанию составляет 2 пикселя в высоту и охватывает ширину окна браузера. Вы можете изменить эти
размеры путем кодирования стилей ширины и высоты для тега . Этот размер показан следующим
встроенная таблица стилей и отображение в браузере.
При указании ширины элементов страницы часто предпочтительнее закодировать ее в процентах. Этим способом,
ширина всегда отображается в правильной пропорции к другим элементам на веб-странице, независимо от того,
пользователь регулирует размер окна браузера. Если размер горизонтальной линейки меньше ширины
окно браузера, то его также можно выровнять с помощью text-align:left, text-align:center или text-align:right
расположить его горизонтально на линии. В предыдущем примере правило составляет 75% ширины страницы и
находится в центре.
Обычно все горизонтальные линейки на странице имеют одинаковый стиль. Поэтому имеет смысл закодировать это
стиль во встроенной или связанной таблице стилей, чтобы его можно было закодировать один раз для применения ко всем правилам
на странице или все правила на сайте. Следующий код является примером того, как горизонтальные правила могут быть
стандартизирован для страницы со встроенной таблицей стилей.
Листинг 3-28. Код для оформления всех горизонтальных линеек на странице.
При таком стиле все тегов на странице создают правила высотой 1 пиксель,
50% ширины окна браузера (независимо от размера окна) и центрировано по горизонтали на
страница.
Ширина и высота изображения
Часто случается так, что графические изображения не имеют точной ширины или высоты, необходимой для удобного размещения на
вашу веб-страницу. Это повторяющаяся проблема, если у вас нет или вы не знаете, как использовать визуализацию.
программное обеспечение для изменения размера изображения перед его размещением на странице. Однако, применяя ширину и высоту
свойства стиля для этих изображений, размер которых можно изменять на лету при отображении в браузере.
Фактический размер изображения, показанного на рис. 3-23, составляет 162 x 108 пикселей. При отображении на странице
его ширина установлена на 100 пикселей с встроенной таблицей стилей.
Листинг 3-29. Код для динамического изменения размера изображения.
Рисунок 3-23. Изображение с динамически изменяемым размером.
При изменении размера изображения задайте либо ширину, либо высоту, но обычно не оба сразу. Браузер автоматически
регулирует другое измерение, чтобы сохранить правильную пропорцию. Конечно, вы можете установить оба свойства
независимо, если вы знаете их правильные измененные размеры или если вы хотите создать специальные визуальные
эффекты с непропорциональной шириной и высотой.
Несмотря на то, что изображение может быть автоматически изменено при отображении в браузере, оно все равно сохраняет свое
исходный размер файла.