CSS - Висота блоку щодо його ширини. Параметри css width та height для завдання розмірів елементів html сторінки Значить height

03.04.2021 Безпека

Властивості css width відповідає за значення ширини області з вмістом елемента.

Width: значення | відсотки | auto | inherit

Властивості css height відповідає за значення висоти області з вмістом елемента.

Height: значення | відсотки | auto | inherit

Негативні значення висоти та ширини вказувати не допускаються.

Здавалося б, що з цими властивостями CSS все просто і зрозуміло, але насправді все виявляється не зовсім так просто.

Задавши якомусь елементу на веб-сторінці ширину за допомогою властивості width 500px, це не означатиме, що загальна ширина цього елемента буде 500 пікселів і не більше.

Найголовніше, що потрібно розуміти, властивості width і height задають значення ширини та висоти для області із вмістом.

Властивості width і height - це лише одні з складових з яких буде обчислюватися загальна ширина і висота елемента. Вони вказують ширину та висоту області Content, яку можна побачити на наступному зображенні. Також у формуванні загальної ширини та висоти беруть участь такі властивості як padding, margin та border.

У цьому можна легко переконатись.

Давайте, наприклад, візьмемо два блоки з однаковою шириною width, але одному з них поставимо додатково властивість padding.

width:100px
width:100px + padding

За замовчуванням, веб-сторінки мають поведінку, що до значення висоти та ширини додається значення padding для відповідної сторони.

Тобто. загальна ширина елемента складатиметься зі значення властивості width елемента і до неї плюсуватиметься значення padding-left та padding-right.

Для різних типівелементів, які можна зустріти на сторінці загальна ширина та висота елементів вважається за спеціальними формулами.

Для різних типів елементів, які можна зустріти на веб-сторінках значення width і height можуть мати різну поведінку та значення.

Аналогічна ситуація буде з якістю height.

height:100px
height:100px + padding

У CSS є особливий алгоритм, за яким обчислюється значення width і height для різних елементівна веб-сторінці. Я не буду зупинятися на цьому алгоритмі, т.к. він дещо складний.

Зараз для нас головне зрозуміти, що властивості width і height дозволяють працювати із шириною та висотою саме області із вмістом елемента, а не загальною шириною та висотою елемента.

Для того щоб об'єкту можна було задати певну ширину і висоту, CSS існують дві властивості - width і height (відповідно). З їх допомогою ви можете встановлювати фіксовані розміри елементів, сайдбар, зображення, таблиця або будь-який блок.

Особливості обчислення ширини та висоти

Для визначення ширини чи висоти об'єкта можна використовувати будь-які одиниці виміру довжини CSS. Найбільш прості у розумінні пікселі. Якщо ви використовуєте відсотковий запис, майте на увазі, що в цьому випадку ширина об'єкта залежатиме від ширини його батька. Якщо такого немає, то ширина елемента обчислюється, виходячи із ширини вікна браузера (при зміні користувачем ширини вікна значення width буде перераховано).

Як значення ширини можна використовувати і одиницю em , яка є приблизно тим самим, чим і розмір шрифту тексту, але тільки в умовних одиницях. Наприклад, ви встановили розмір шрифту 24px . Тоді 1em для цього елемента дорівнюватиме 24 пікселів, а якщо ви задасте width: 2em, то ширина складе 2×24px = 48 пікселів. Якщо розмір шрифту не встановлено, він буде успадкований.

Висота height , задана у відсотках, обчислюється аналогічним чином, як і ширина, але розрахунок ґрунтується вже на висоті батьківського елемента, а не на його ширині. Якщо батьків немає, висота буде залежати від висоти вікна браузера.

Процентна ширина та висота дочірнього елементаобчислюються на підставі розмірів батька

Що входить у ширину та висоту

Відразу варто запам'ятати, що властивості width і height мають особливість - вони не включають в себе значення margin , padding і border . Значення, яке ви встановите для width/height, означатиме лише ширину/висоти області вмісту елемента.

Таким чином, для того, щоб обчислити, наприклад, фактичну ширину елемента (місце, яке він насправді займе на екрані), знадобиться трохи арифметики. Фактична ширина - це сума значень, таких як width, padding, border та margin. Нагадаємо, що раніше ми розглядали, як виглядає блокова модель CSS.

Для закріплення знань покажемо приклад. Допустимо, у вас є елемент із таким стилем:

Width: 200px; margin-left: 15px; margin-right: 15px; padding-left: 10px; border-left: 3px solid #333;

Для підрахунку фактичної ширини елемента виконаємо додавання:

width + margin-left + margin-right + padding-left + border-left = 200px + 15px + 15px + 10px + 3px = 243px (фактична ширина)

Властивість height може бути зручним, якщо треба точно контролювати, наприклад висоту зображення. Однак, якщо контейнер містить текст або будь-який інший контент, у якого може змінюватись висота, вкрай не рекомендується встановлювати фіксовану висоту для контейнера, оскільки подібна верстка може призвести до несподіваного результату - контент буде відображатися поверх іншого вмісту.

Замість фіксованої висоти використовувати height: auto - цей запис означає, що висота об'єкта розраховуватиметься автоматично, залежно від вмісту, який він містить.

Інший спосіб уникнути розвалу верстки - використовувати запис overflow: auto. У разі, якщо висота вмісту перевищуватиме значення height свого контейнера, браузер додасть до контейнера смугу прокручування.



У наступному уроці ви дізнаєтеся, як можна перевизначати ширину елемента за допомогою цікавої та дуже корисної властивості



Більшості елементів HTML, як правило, присвоюється певна висота і ширина. Задати дані параметри CSS досить легко, а як результат - практично. Використовуються для цього відомі Вам властивості height і width. Однак, у даному уроці ми ще поговоримо про не фіксовану ширину і висоту або гумову, тобто залежно від ширини самого вікна. Приступимо)

width

Ця властивість встановлює певну ширину елемента HTML. Значення може бути зазначено у пікселях, відсотках (інші величини використовуються рідше).

MyBlock (
width: 400px; /* ширина 400 пікселів */

}
Або ж у відсотках:

MyBlockPercent50 (
width: 50%; /* ширина 50% від ширини блоку чи вікна (якщо не всередині блоку з фіксованою шириною) */
color: #f1f1f1; /* світло-сірий блок */
}
Відповідно, отримуємо блок, який завжди буде по ширині складати половину від батьківського.

Тепер про найцікавіше. Width має такі параметри, які вказують максимальну або мінімальну ширину. Це властивості min-width та max-width відповідно. Вказувати їм значення можна й у пікселях, й у відсотках, й інших величинах. Дані властивості – це основа для створення гумового та адаптивного дизайнів ().

приклад адаптивного дизайну . Подивися, змінюючи розміри вікна бразура:

Це я, звісно, ​​забіг уперед. Але ви повинні розуміти, що і навіщо потрібно. Та й помацати приємний результат)

Як ви вже зрозуміли, за допомогою цих властивостей можна гнучкіше поводитися з елементами на сторінці, не спотворюючи вмісту. Як це працює? Розглянемо код.

Block (
max-width: 800px;
background-color: #f1f1f1; /* світло-сірий блок */
padding: 20px;
}
Блок з цими властивостями при ширині батька в 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 властивостейі настроїти відображення контенту у разі якщо він не міститься в елементі.

width і height — ширина та висота елементів у css

За допомогою атрибутів стилю width і height можна задавати відповідно ширину та висоту блокових елементів:

width: auto|<ширина>|inherit
height: auto|<ширина>|inherit

Як значення можна використовувати будь-які доступні в css одиниці виміру - наприклад, пікселі (px), дюйми (in), пункти (pt) та ін.

p (width:200px; height:150px)

Крім абсолютних одиниць можна ставити відносне значення розміру елементів у відсотках. У цьому випадку ширина та висота елемента залежатиме від ширини та висоти батьківського елемента. Якщо батько явно не вказаний, розміри залежатимуть від вікна браузера.

div (width:40%;)

Значення auto віддає керування розмірами елемента веб-браузеру і значення за промовчанням. У цьому випадку розміри елемента будуть такі, щоб у ньому повністю вмістився весь вміст.

Розглянемо кілька прикладів.





width and height




Ласкаво просимо до нашого автомобільного сайту. Тут Ви знайдете багато цікавих та корисних статей про автомобілі, про них технічні характеристикита особливостях.




Результат:

У цьому прикладі ми створили блок div і вклали абзац p з текстом. Для div-а ми суворо поставили розміри 300 на 300 пікселів. У елемента p значення властивостей width і height рівні auto, тому як видно на скріншоті, його ширина встановилася рівною ширині батьківського елемента, а висота стала такою, щоб у ньому помістився текст, що міститься в абзаці.

Тепер змінимо css налаштування для абзацу p і задаємо фіксовані розміри:

Layer2 (
background: #eee;
width:250px;
}

Результат:

Як бачимо ширина абзацу стала вже рівна 250 пікселів, а його висота збільшилася так, щоб вмістився текст, так як параметр height залишився рівним auto.

Тепер давайте поставимо висоту і ширину абзацу у відсотках:

Layer2 (
background: #eee;
width:50%;
height:50%;
}

Результат:

Як видно на картинці, ширина елемента p дорівнює половині ширини елемент div. А висота збільшилася і дорівнювала 75 відсоткам висоти div.

При заданні ширини та висоти будь-яких елементів у відносних одиницях, може знадобитися вказати мінімальні та максимальні можливі розміри. Адже, наприклад, при зміні розмірів вікна браузера розміри елемента можуть зменшуватися і збільшуватися до таких розмірів, що зручність читання сайту стане дуже низькою.

Визначити мінімальну ширину та висоту можна за допомогою атрибутів min-width та min-heigh:

min-width:<ширина>
min-height:<высота>

Аналогічні атрибути стилю max-width та max-height дозволяють задати максимальні розміри:

max-width:<ширина>
max-height:<высота>

Зрозуміло, що при заданні максимальних і мінімальних значень висоти і ширини, розміри елемента не зможуть стати більшими за максимальне і менше мінімального значень.

Варто уточнити, що завдання параметрів height і width має сенс лише для блокових тегів, оскільки для малих елементів ці параметри браузером не обробляються.

Може вийти так, що при заданні жорстких параметрів висоти і ширини елемента, що міститься в ньому, контент може не вписатися в обмежену область.

Наприклад, зменшимо розміри абзацу p з вище розглянутих прикладів до 100 пікселів:

Layer2 (
background: #eee;
width:100px;
height:100px;
}

Результат:

Як видно, текст вийшов за межі абзацу і виглядає не дуже красиво. Для уникнення подібних ситуацій існує правило css overflow.

Параметр переповнення overflow для приховування (hidden, visible) або прокручування (scroll, auto) контенту

Переповнення контенту може виникнути, коли обмежують ширину і висоту елемента. Розглянемо два абзаци:

Текст першого абзацу


Текст другого абзацу

Результат:

Так як ні ширина ні висота для абзаців не задані, то браузер самостійно розраховує їх, виходячи зі свого власного розуміння значення auto. В результаті абзаци по ширині зайняли весь доступний простір, а по висоті відповідно до контенту, що міститься в них.

Тепер у першого абзацу обмежимо ширину:

Текст першого абзацу


Текст другого абзацу

Результат:

Ширина абзацу очікувано зменшилася, а висота встановилася такою, щоб вмістити весь текст.

Ну а тепер обмежимо у першого абзацу та висоту:

Текст першого абзацу


Текст другого абзацу

В результаті вийшло, що текст до такого обмеженого абзацу не влазить і тому він наїхав на область нижнього сусіда. Відповідно, прочитати текст ні в першому, ні в другому абзацах практично неможливо. Саме для управління поведінкою контенту в таких ситуаціях існує правило overflow:

overflow: visible|hidden|scroll|auto|inherit

За замовчуванням overflow приймає значення visible, яке повідомляє браузеру, щоб він відображав вміст, що не вмістився в контейнері. Результат можна побачити на прикладі вище.

Правило приховує все, що не міститься у контейнері:

Значення scroll відобразить в елементі по вертикалі та горизонталі смуги прокручування навіть у тому випадку, якщо весь вміст міститься:

Текст першого абзацу


Текст другого абзацу

Найбільш популярним та логічним рішенням, якщо вам знадобиться зробити смуги прокручування для контейнера є значення auto. У цьому випадку браузер сам визначатиме коли і по яких осях варто відображати смуги прокручування:

Текст першого абзацу


Текст другого абзацу

Результат:

Для налаштування смуг прокручування можна також використовувати атрибути стилю overflow-x та overflow-y, які дозволяють налаштовувати відображення прокручування по окремих осях. Таким чином відповідає за горизонтальну вісь, а за вертикальну вісь.

Тому якщо вам, наприклад, потрібно, щоб в абзаці горизонтальна прокручування не з'являлася ніколи, а вертикальна з'являлася тільки за потребою, то достатньо написати наступне правило css:

p(overflow-x:hidden;overflow-y:auto;)

І завдання буде вирішено.

На цьому все. До нових зустрічей. Не забудьте підписатися на оновлення блогу і буду вдячний, якщо скористаєтеся кнопочками соціальних мереж.

The height CSS properties specifies the height of an element. Залежно від того, property defines height of the content area . Якщо box-sizing is set to border-box , however, it instead determines the height of the border area .

Source для цього interactive example is stored in GitHub repository. Якщо ви знайдете, щоб розширити проектні приклади, повторити clone https://github.com/mdn/interactive-examples і виконати додаткові запити.

The min-height and max-height properties override height .

Syntax

/* Keyword value */ height: auto; /* values ​​*/ height: 120px; height: 10em; /* Value */ height: 75%; /* Global values ​​*/ height: inherit; height: initial; height: unset;

Values

CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> Defines the height as an absolute value. CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. Defines the height as a percentage of the containing block"s height. auto Натисніть кнопку, щоб змінити значок. type represents a value that can be either a or a ."> ) За допомогою fit-content formula з наявним space replaced by the specified argument, i.e. min(max-content, max(min-content,)).

Formal syntax

CSS data type represents a percentage value. Це буде використано для того, щоб визначити, як важливий для елемента" з parent object. border-box content-box available min-content max-content fit-content auto

Example

HTML

I'm 50 pixels tall.
I'm 25 pixels tall.
I'm half the height of my parent.

CSS

div ( width: 250px; margin-bottom: 5px; border: 2px solid blue; ) #taller ( height: 50px; ) #shorter ( height: 25px; ) #parent ( height: 100px; ) #child ( height: 50% width: 75%;

Result

Accessibility concerns

Налаштування того, що елементи set with height are no truncated and/or do not obscure other contents when the page is zoomed to increase text size.

Specifications

Specification Status Comment
CSS Intrinsic & Extrinsic Sizing Module Level 4
Editor"s Draft
CSS Intrinsic & Extrinsic Sizing Module Level 3
Definition of "height" in that specification.
Working Draft Added the max-content , min-content , fit-content keywords.
CSS Transitions
Definition of "height" in that specification.
Working Draft Lists height as animatable.
CSS Level 2 (Revision 1)
Definition of "height" in that specification.
Recommendation Додайте support for CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow."> values ​​and precises on which element it applies to.
CSS Level 1
Definition of "height" in that specification.
Recommendation Initial definition.
Initial valueauto
Applies toall elements but non-replaced inline elements, table columns, and column groups
Inheritedno
ВідсоткиВідсоток вираховується з особливістю, пов'язаною з генерованим boxом. Відсоток висоти на рівні керування елементом є порівнянним до початкового розташування блоку.
Mediavisual
Computed valueвідсоток або автомобіль або повний рівень
Animation typeacss datatype є interpolated as real, floating-point numbers.">length , CSS data typ є interpolated as real, floating-point numbers.">percentage or calc();
Canonical orderunique non-ambiguous order defined by the formal grammar

Browser compatibility

Компактність таблиці на цій сторінці генерується з структурованих даних. Якщо ви знайдете, щоб дізнатися про ваші дані, клацніть на https://github.com/mdn/browser-compat-data і пишуть.

Update compatibility data on GitHub

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
heightChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 7Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
fit-contentChrome Full support 46Edge No support NoFirefox No support NoIE No support NoOpera Full support 33Safari Full support 11 Full support 11 Full support 9

Prefixed

Prefixed
Opera Android?Safari iOS Full support 11 Full support 11 Full support 9

Prefixed

Prefixed Implemented with the vendor prefix: -webkit-
max-contentChrome Full support 46Edge No support No

Prefixed

Prefixed
IE No support NoOpera Full support 44Safari Full support 11WebView Android Full support 46Chrome Android Full support 46

Prefixed

Prefixed Implemented with the vendor prefix: -moz-
Samsung Internet Android Full support 5.0
min-contentChrome Full support 46Edge No support NoFirefox Full support 66 Full support 66 Full support 3

Prefixed

Prefixed Implemented with the vendor prefix: -moz-
IE No support NoOpera Full support 44Safari Full support 11WebView Android Full support 46Chrome Android Full support 46Firefox Android Full support 66 Full support 66 Full support 4

Prefixed

Prefixed Implemented with the vendor prefix: -moz-
Opera Android Full support 43Safari iOS Full support 11Samsung Internet Android Full support 5.0
stretchChrome Full support 28

Webkit-fill-available">Alternate Name

Full support 28

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name

Edge No support NoFirefox No support NoIE No support NoOpera Full support 15

Webkit-fill-available">Alternate Name

Full support 15

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

Safari Full support 9

Webkit-fill-available">Alternate Name

Full support 9

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

WebView Android Full support 4.4

Webkit-fill-available">Alternate Name

Full support 4.4

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

Chrome Android Full support 28

Webkit-fill-available">Alternate Name

Full support 28

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

Firefox Android No support NoOpera Android?Safari iOS Full support 9

Webkit-fill-available">Alternate Name

Full support 9

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

Samsung Internet Android Full support 5.0

Webkit-fill-available">Alternate Name

Full support 5.0

Webkit-fill-available">Alternate Name

Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available

Legend

Full support Full support No support No support Compatibility unknown Compatibility unknown Використовується для нестандартного імені. Uses a non-standard name. Requires a vendor prefix or different name for use. Requires a vendor prefix or different name for use.