微末非末 发表于 2018-2-6 22:38:57

新手 HTML入门求助

请看代码中的注释


<!doctype html>
<html>
        <head>
                <meta charset="utf-8">
                <title>欢迎进入html5的界面</title>
                <style type="text/css">
                        html,body{ height: 100%;       /* 不二老师在04不是说body有继承机制,所以这的body可以不用写,为什么我去掉之后效果完全就不一样了呢?当我把此处的body去掉之后,就没有居中效果了*/
                                           color:#ff0088;
                        }

                        body{
                                background:url(背景.jpg) center center;
                                background-size:cover;
                                margin: 0;
                                padding: 0;
                                position:relative;
                        }
                        #container{
                                position:absolute;
                                top:50%;
                                width:100%;
                                transform: translateY(-50%);
                                text-align:center;
                        }
                </style>
        </head>
        <body>
                <p>我爱鱼c</p>
                <div id='container'>
                        <h1>我爱鱼c</h1>
                        <a href='http:\\www.fishc.com'>传送门</a>
                       
                </div>
        </body>

</html>

抱歉啊,图片太大了上传不了。求帮忙看一下代码{:5_100:}
情况是我把body去掉就不会居中了

不二如是 发表于 2018-2-7 10:05:34

本帖最后由 不二如是 于 2018-2-7 10:40 编辑

这是一个固定套路:
html,body{
height: 100%;
color:#ff0088;
      }

下面的解释对于初学者可能会不理解:
当html标签无背景样式时,body的背景色其实不是body标签的背景色,而是浏览器的。

一旦html标签含有背景色,则body的背景色变成了正常的body标签自己的背景色。

而此时的html标签最顶级,背景色被浏览器获取,成为浏览器的背景色。

如果不理解,记住:
div的父元素是body,body的父元素是html,通过height:100%层层向上,找到顶级获取定高。


div的100%是从其上一级div的宽高继承来的,有一点很关键,就是要设置div100%显示,必须设置其上一级div的宽度或高度,否则无效。

通过这种方式,让div顺利居中

微末非末 发表于 2018-2-7 21:26:29

不二如是 发表于 2018-2-7 10:05
这是一个固定套路:




还是有些不懂,不二老师,你的意思是:要设置div的高度为100%就要设置它的父级body( 此处div的上以及div为body? ) 的宽度为100%,要设置body的宽度就要又设置它的父级html的宽度,是这样吗?

但是我的问题是:body会继承啊,所以body可以省略不用写,body的高度属性也会和它的父级一样,所及最终也可以设置了div,对吗?

然后由于此处html标签没有背景样式,body的背景颜色和高度都是浏览器默认给的,所以body是不能省略的。


还有最后一个疑问就是:为什么我把body去掉之后,只是文字的位置改变了而文字的颜色没有改变?难道说是因为高度没有继承的特性吗?


不好意思啊,不二老师,问题比较多{:5_100:}
页: [1]
查看完整版本: 新手 HTML入门求助