CSS - Висота блоку щодо його ширини. Параметри css width та height для завдання розмірів елементів html сторінки Значить height
Властивості css width відповідає за значення ширини області з вмістом елемента.
Width: значення | відсотки | auto | inherit
Властивості css height відповідає за значення висоти області з вмістом елемента.
Height: значення | відсотки | auto | inherit
Негативні значення висоти та ширини вказувати не допускаються.
Здавалося б, що з цими властивостями CSS все просто і зрозуміло, але насправді все виявляється не зовсім так просто.
Задавши якомусь елементу на веб-сторінці ширину за допомогою властивості width 500px, це не означатиме, що загальна ширина цього елемента буде 500 пікселів і не більше.
Найголовніше, що потрібно розуміти, властивості width і height задають значення ширини та висоти для області із вмістом.
Властивості width і height - це лише одні з складових з яких буде обчислюватися загальна ширина і висота елемента. Вони вказують ширину та висоту області Content, яку можна побачити на наступному зображенні. Також у формуванні загальної ширини та висоти беруть участь такі властивості як padding, margin та border.
У цьому можна легко переконатись.
Давайте, наприклад, візьмемо два блоки з однаковою шириною width, але одному з них поставимо додатково властивість padding.
За замовчуванням, веб-сторінки мають поведінку, що до значення висоти та ширини додається значення padding для відповідної сторони.
Тобто. загальна ширина елемента складатиметься зі значення властивості width елемента і до неї плюсуватиметься значення padding-left та padding-right.
Для різних типівелементів, які можна зустріти на сторінці загальна ширина та висота елементів вважається за спеціальними формулами.
Для різних типів елементів, які можна зустріти на веб-сторінках значення width і height можуть мати різну поведінку та значення.
Аналогічна ситуація буде з якістю height.
У 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 свого контейнера, браузер додасть до контейнера смугу прокручування.
![](https://i2.wp.com/idg.net.ua/blog/wp-content/uploads/css-height.png)
У наступному уроці ви дізнаєтеся, як можна перевизначати ширину елемента за допомогою цікавої та дуже корисної властивості
Більшості елементів 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 віддає керування розмірами елемента веб-браузеру і значення за промовчанням. У цьому випадку розміри елемента будуть такі, щоб у ньому повністю вмістився весь вміст.
Розглянемо кілька прикладів.
Ласкаво просимо до нашого автомобільного сайту. Тут Ви знайдете багато цікавих та корисних статей про автомобілі, про них технічні характеристикита особливостях.
Результат:
У цьому прикладі ми створили блок 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
CSS data type represents a distance value. Lengths може бути використана в декількох CSS властивостей, так як width, height, margin, padding, border-width, font-size, і text-shadow.">Formal syntax
Example
HTML
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."> |
CSS Level 1 Definition of "height" in that specification. |
Recommendation | Initial definition. |
Initial value | auto |
---|---|
Applies to | all elements but non-replaced inline elements, table columns, and column groups |
Inherited | no |
Відсотки | Відсоток вираховується з особливістю, пов'язаною з генерованим boxом. Відсоток висоти на рівні керування елементом є порівнянним до початкового розташування блоку. |
Media | visual |
Computed value | відсоток або автомобіль або повний рівень |
Animation type | acss datatype є interpolated as real, floating-point numbers.">length , CSS data typ є interpolated as real, floating-point numbers.">percentage or calc(); |
Canonical order | unique non-ambiguous order defined by the formal grammar |
Browser compatibility
Компактність таблиці на цій сторінці генерується з структурованих даних. Якщо ви знайдете, щоб дізнатися про ваші дані, клацніть на https://github.com/mdn/browser-compat-data і пишуть.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome для Android | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet | |
height | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 4 | Opera Full support 7 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 |
fit-content | Chrome Full support 46 | Edge No support No | Firefox No support No | IE No support No | Opera Full support 33 | Safari 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-content | Chrome Full support 46 | Edge No support No | Prefixed Prefixed | IE No support No | Opera Full support 44 | Safari Full support 11 | WebView Android Full support 46 | Chrome Android Full support 46 | Prefixed Prefixed Implemented with the vendor prefix: -moz- | Samsung Internet Android Full support 5.0 | ||
min-content | Chrome Full support 46 | Edge No support No | Firefox Full support 66 Full support 66 Full support 3 Prefixed Prefixed Implemented with the vendor prefix: -moz- | IE No support No | Opera Full support 44 | Safari Full support 11 | WebView Android Full support 46 | Chrome Android Full support 46 | Firefox Android Full support 66 Full support 66 Full support 4 Prefixed Prefixed Implemented with the vendor prefix: -moz- | Opera Android Full support 43 | Safari iOS Full support 11 | Samsung Internet Android Full support 5.0 |
stretch | Chrome Full support 28 Webkit-fill-available">Alternate Name Full support 28Webkit-fill-available">Alternate Name Webkit-fill-available">Alternate Name | Edge No support No | Firefox No support No | IE No support No | Opera Full support 15 Webkit-fill-available">Alternate Name Full support 15Webkit-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 9Webkit-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.4Webkit-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 28Webkit-fill-available">Alternate Name Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available | Firefox Android No support No | Opera Android? | Safari iOS Full support 9 Webkit-fill-available">Alternate Name Full support 9Webkit-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.0Webkit-fill-available">Alternate Name Webkit-fill-available">Alternate Name Використання non-standard name: -webkit-fill-available |