最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

為什么你寫的height:100%不起作用

  發(fā)布時(shí)間:2021-05-10 15:34:47   作者:西伯利亞虎   我要評(píng)論
這篇文章主要介紹了為什么你寫的height:100%不起作用?這個(gè)知識(shí)不算冷門的,但是用的時(shí)候可能還是會(huì)有些懵逼,下面小編就詳細(xì)介紹一下

為什么你寫的height:100%不起作用?

這個(gè)知識(shí)不算冷門的,但是用的時(shí)候可能還是會(huì)有些懵逼,不能生效時(shí)搜一搜就能找到答案了,但是你真的懂了嗎?為什么想要設(shè)置一個(gè)全屏元素的時(shí)候,高度不受%的控制?

1.百分比寬高的設(shè)定

按照w3c中的width和height屬性,可以明確%設(shè)定寬高是根據(jù)父元素的寬高來(lái)的:
https://www.w3school.com.cn/cssref/pr_dim_width.asp
https://www.w3school.com.cn/cssref/pr_dim_height.asp

2.width:100%;

我們寫下這樣一段代碼,隨意設(shè)置一個(gè)背景色便于觀察元素。注意以下代碼,記得加上<!DOCTYPE html>,否則會(huì)有所不同。

<body>
    <div style="width:100%;height:100%;background-color:blueviolet;">
    width:100%;height:100%;
    </div>
</body>
//寬100%,我們現(xiàn)在看到的高是屬于font-size的,而不是100%;

<body>
    <div style="width:100%;height:200px;background-color:blueviolet;">
    width:100%;height:200px;
    </div>
</body>
//效果如下

可以看到基本上寬的100%很容易就實(shí)現(xiàn)的,但是這里的height卻不能設(shè)置成%比的(該元素會(huì)消失看不見),這是為什么呢?

3.瀏覽器是如何計(jì)算高度和寬度的

Web瀏覽器在計(jì)算有效寬度時(shí)會(huì)考慮瀏覽器窗口的打開寬度。如果你不給寬度設(shè)定任何缺省值,那瀏覽器會(huì)自動(dòng)將頁(yè)面內(nèi)容平鋪填滿整個(gè)橫向?qū)挾取<次覀儾辉O(shè)置寬,會(huì)自動(dòng)填滿整個(gè)橫向?qū)挾?,如下?/p>

<div style="height:100%;">height:100%;</div>

但是高度的計(jì)算方式完全不一樣。事實(shí)上,瀏覽器根本就不計(jì)算內(nèi)容的高度,除非內(nèi)容超出了視窗范圍(導(dǎo)致滾動(dòng)條出現(xiàn))?;蛘吣憬o整個(gè)頁(yè)面設(shè)置一個(gè)絕對(duì)高度。否則,瀏覽器就會(huì)簡(jiǎn)單的讓內(nèi)容往下堆砌,頁(yè)面的高度根本就無(wú)需考慮。
因?yàn)轫?yè)面并沒有缺省的高度值,所以,當(dāng)你讓一個(gè)元素的高度設(shè)定為百分比高度時(shí),無(wú)法根據(jù)獲取父元素的高度,也就無(wú)法計(jì)算自己的高度。
即父元素的高度只是一個(gè)缺省值:height: auto;我們?cè)O(shè)置height:100%時(shí),是要求瀏覽器根據(jù)這樣一個(gè)缺省值來(lái)計(jì)算百分比高度時(shí),只能得到undefined的結(jié)果。也就是一個(gè)null值,瀏覽器不會(huì)對(duì)這個(gè)值有任何的反應(yīng)。
各個(gè)瀏覽器對(duì)于寬高的解析也不相同,大家可以自己搜索一下。
 

4.如何解決

現(xiàn)在你知道了吧,%是一個(gè)相對(duì)父元素計(jì)算得來(lái)的高度,要想使他有效,我們需要設(shè)置父元素的height;
要特別注意的一點(diǎn)是,在<body>之中的元素的父元素并不僅僅只是<body>,還包括了<html>。
所以我們要同時(shí)設(shè)置這兩者的height,只設(shè)置其中一個(gè)是不行的:

 html,body{
            height: 100%;
            margin: 0;
            padding: 0;
        }

5.關(guān)于line-height居中的一點(diǎn)誤解?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        html,body{
            height: 100%;
            margin: 0;
            padding: 0;
        }
        div {
            color: white;
            text-align: center;
            font-size: 30px;
            line-height: 100%;
            background-color: blueviolet;
        }
    </style>
</head>

<body>
    <!-- <div style="width:100%;height:100%;">width:100%;height:100%;</div> -->
    <div style="height:100%;">height:100%;</div>
    <!-- <div style="width:100%;height:200px;">width:100%;height:200px;</div> -->
</body>

</html>

全部代碼如上,可以看到設(shè)置了line-height為100%沒有居中,這是為什么呢,因?yàn)檫@時(shí)候的%是相對(duì)于字體尺寸的?所以直接作用于沒有絕對(duì)高度的元素是不行的。

line-height屬性說(shuō)明:https://www.w3school.com.cn/cssref/pr_dim_line-height.asp

這時(shí)候要想居中,可以如下,做一個(gè)div嵌套,一個(gè)負(fù)責(zé)高度,一個(gè)負(fù)責(zé)居中,雖然感覺并不會(huì)這樣用到,但是居中還是很靈驗(yàn)的~

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        html,
        body {
            height: 100%;
            margin: 0;
            padding: 0;
        }

        .div1 {
            background-color: blueviolet;
            position: relative;
        }

        .div2 {
            font-size: 30px;    
            color: white;
            text-align: center;                    
            width: 400px;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translateX(-50%)  translateY(-50%);
        }
    </style>
</head>

<body>
    <!-- <div style="width:100%;height:100%;">width:100%;height:100%;</div> -->
    <div style="height:100%;" class="div1">
        <div class="div2">height:100%;</div>
    </div>
    <!-- <div style="width:100%;height:200px;">width:100%;height:200px;</div> -->
</body>

</html>

6.源碼

https://github.com/JiaXinYi/ife-study/blob/master/height/height.html

搬運(yùn)鏈接:

(...) 前端小知識(shí)--為什么你寫的height:100%不起作用?_知其所以然——前端 - SegmentFault 思否

到此這篇關(guān)于為什么你寫的height:100%不起作用 的文章就介紹到這了,更多相關(guān)height:100%不起作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解HTML元素的height、offsetHeight、clientHeight、scrollTop等梳理

    這篇文章主要介紹了詳解HTML元素的height、offsetHeight、clientHeight、scrollTop等梳理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,
    2020-10-15
  • CSS中width和height的默認(rèn)值auto與%案例詳解

    這篇文章給大家介紹了CSS中width和height的默認(rèn)值auto與%案例,本文通過(guò)實(shí)例案例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-09-30
  • 詳解HTML中字體使用line-height依然不能垂直居中解決辦法

    這篇文章主要介紹了詳解HTML中字體使用line-height依然不能垂直居中解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友
    2020-08-20
  • CSS line-height的如何繼承的問題

    這篇文章主要介紹了CSS line-height的如何繼承的問題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)
    2020-08-18
  • 深入理解 line-height 和 vertical-align

    這篇文章主要介紹了深入理解 line-height 和 vertical-align的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-27
  • CSS中的line-height行高屬性學(xué)習(xí)教程

    line-height對(duì)于頁(yè)面中字體的行距等排版方面的效果至關(guān)重要,這里為大家整理了CSS中的line-height行高屬性學(xué)習(xí)教程,包括line-height的各種取值設(shè)定等方面,需要的朋友可以參
    2016-06-06
  • 深入理解CSS height屬性設(shè)置元素的高度

    下面小編就為大家?guī)?lái)一篇深入理解CSS height屬性設(shè)置元素的高度。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-13

最新評(píng)論

曲松县| 云霄县| 乐清市| 时尚| 阿勒泰市| 达日县| 阜城县| 新郑市| 松江区| 泽州县| 尚义县| 乐昌市| 佛教| 沅江市| 罗江县| 江山市| 东城区| 黄浦区| 卢氏县| 金阳县| 南澳县| 武城县| 祁连县| 大石桥市| 容城县| 迁安市| 澄迈县| 满城县| 怀宁县| 都匀市| 沅江市| 石嘴山市| 北宁市| 宜宾县| 酒泉市| 吕梁市| 敦化市| 和顺县| 昌都县| 若羌县| 高邑县|