Как да използваме CSS за задаване на височина на HTML елемент на 100%

click fraud protection

Процентни стойности в CSS може да бъде сложно. Когато зададете височината CSS свойство на елемент на 100% от какво точно го настройвате на 100%? Това е основният въпрос, с който се сблъсквате, когато се справяте с процентите в CSS и когато оформленията стават по-сложни, той става много по-трудно да се проследяват процентите, което води до някакво откровено странно поведение, ако не сте внимателен.

Работата с проценти има очевидно предимство; базирани на проценти оформления автоматично се адаптират към различни размери на екрана. Ето защо използването на проценти е от съществено значение при отзивчивия дизайн. Популярните мрежови системи и CSS рамки използват процентни стойности, за да създадат своите отзивчиви мрежи.

Ясно е, че има определени ситуации, по-подходящи за статични стойности, и други, които работят много по-добре с нещо адаптивно, като проценти. Ще трябва да решите кой маршрут да поемете с елементите във вашия дизайн.

Статични единици

Пикселите са статични. Десет пиксела на едно устройство са десет пиксела на всяко устройство. Разбира се, има неща като плътността и начина, по който устройството всъщност интерпретира какво е пиксел, но никога няма да видите големи промени, тъй като екранът е с различен размер.

instagram viewer

С CSS можете лесно да дефинирате елемент височина в пиксели, и ще остане същата. Това е предсказуемо.

div {
височина: 20px;
}

Това няма да се промени, освен ако не го промените с JavaScript или нещо подобно.

Сега има и друга страна на тази монета. Няма да се промени. Това означава, че ще трябва да измервате всичко точно и дори тогава вашият сайт няма да работи на всички устройства. Ето защо статичните единици са склонни да работят по-добре за дъщерни елементи, носители и неща, които ще започнат да се изкривяват и изглеждат странно, ако се разтягат и растат.

Задаване на височина на елемент на 100%

Когато зададете височина на елемент на 100%, тя обхваща ли цялата височина на екрана? Понякога. CSS винаги третира процентните стойности като процент от родителския елемент.

Без елемент на родител

Ако сте създали нов това се съдържа само от маркера на тялото на вашия сайт, 100% вероятно ще се равнява на височината на екрана. Това е, освен ако не сте дефинирали стойност на височината за.

HTML:




CSS:

div {
височина: 100%;
}
Височина на CSS елемента 100% няма родител

Че височината на елемента ще бъде равна на височината на екрана. По подразбиране обхваща целия екран, така че това е основата, която вашият браузър използва при изчисляване на височината на елемента.

С родителски елемент със статична височина

Когато вашият елемент е вложен в друг елемент, браузър ще използва височината на родителския елемент, за да изчисли стойност за 100%. Така че, ако вашият елемент е вътре в друг елемент, който има височина 100px, и вие задавате височината на дъщерния елемент на 100%. Дочерният елемент ще бъде висок 100px.

HTML:






CSS:

#parent {
височина: 100px;
}
#child {
височина: 100%;
}
CSS елемент със 100% височина и 20em родител

Височината, достъпна за дъщерния елемент, се ограничава от височината на родителя.

С родителски елемент с процентна височина

Може да изглежда контраинтуитивно, но можете да зададете височината на елемент на процент от процент. Когато елемент има родителски елемент, който също има височина, дефинирана като процентна стойност, браузърът ще използва същата стойност като родителя, която той вече е изчислил въз основа на своя родител. Това е така, защото 100% от стойността все още е тази стойност.






CSS:

#parent {
височина: 75%;
}
#child {
височина: 100%;
}
Височина на CSS елемента 100% в проценти родител

В този случай височината на родителския елемент е 75% от целия екран. Тогава детето също е на 100% от общата налична височина.

С родителски елемент без височина

Интересното е, че когато родителският елемент няма определена височина, браузърът ще продължи да се покачва ниво на ниво, докато намери конкретна стойност, с която може да работи. Ако стигне чак до без да намери нищо, браузърът ще зададе по подразбиране височината на екрана, придавайки на вашия елемент еквивалентна височина.

HTML:






CSS:

#parent {}
#child {
височина: 100%;
}
CSS елемент със 100% височина и неопределена родителска височина

Дочерният елемент се простира до горната и долната част на екрана.

Единиците на Viewport

Тъй като изчислението с процентни единици може да бъде сложно и всеки елемент е обвързан със своя родител, има набор от единици, които игнорират всички тези и основните размери елементи директно от наличния екран пространство. Това са мерните единици и те ви дават директен размер въз основа на височината или ширината на екрана, независимо къде се намира елементът.

За да зададете елемент височина равна на височината на екрана, задайте стойността на височината му на 100vh.

div {
височина: 100vh;
}
CSS елемент с височина на изгледа и дефиниран родител

Лесно е да разчупите оформлението си, като правите това, и ще трябва да сте наясно кои други елементи ще бъдат засегнати, но прозорецът за гледане е най-прекият начин за задаване на височина на елемент на 100% от екран.

instagram story viewer