2.HTML的组成部分、DIV+CSS布局

HTML的组成部分

  • dtd部分:文档类型说明,声明版本、标准


    image.png
image.png
  • header部分:给机器看的
  • body部分:给人看的

CSS控制div显示

  • <div> 是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div> 固有的唯一格式表现。可以通过 <div> 的 class 或 id 应用额外的样式。
  • 如下代码是CSS通过id设置每个div的宽高和背景色
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #a {
            width: 200px;
            height: 100px;
            background: red;
        }
        #b {
            width: 200px;
            height: 100px;
            background: blue;
        }
        #c {
            width: 200px;
            height: 100px;
            background: green;
        }
    </style>
</head>
<body>
    <div id="a"></div>
    <div id="b"></div>
    <div id="c"></div>
</body>
</html>

执行效果:


image.png

浮动布局

我们先写两个div设置上背景颜色看看效果

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #lside {
            height: 200px;
            background: red;
        }
        #rside {
            height: 200px;
            background: green;
        }
    </style>
</head>
<body>
    <div id="lside">我是左边</div>
    <div id="rside">我是右边</div>
</body>
</html>
image.png

上文也说ddiv的内容会自动地开始一个新行,所以想将两个div左右排列就要进行浮动布局
我们分别在CSS中加上float属性

    <style type="text/css">
        #lside {
            height: 200px;
            background: red;
            float: left;
        }
        #rside {
            height: 200px;
            background: green;
            float: right;
        }
    </style>

效果如下图:


image.png

清除浮动

当有浮动布局和普通div共同存在时,会发生如下覆盖的情况

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #lside {
            height: 200px;
            background: red;
            float: left;
        }
        #rside {
            height: 300px;
            background: green;
            float: right;
        }
        #normal {
            height: 400px;
            background: blue;
        }
    </style>
</head>
<body>
    <div id="lside">我是左边</div>
    <div id="rside">我是右边</div>
    <div id="normal">我不设置浮动</div>
</body>
</html>
image.png

所以如果不想被覆盖,就要清除浮动
在CSS中对普通元素设置clear属性
当我们增加 clear: left; 时,代表不让左边浮动盖着自己

        #normal {
            height: 400px;
            background: blue;
            clear: left;
        }

此时清除左浮的div就会贴着左浮的div下边显示,如图:


image.png

同样的还可设置 clear: right; 代表不让右边浮动盖着自己;设置 clear: both; 代表不让浮动盖着自己。这里不做演示

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,693评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,331评论 1 45
  • 前言 在MyLayout的6大布局中,每种布局都有不同的应用场景。且每种布局的子视图的约束机制不一样:线性布局...
    欧阳大哥2013阅读 12,400评论 4 29
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 7,247评论 0 20
  • 简文第一篇,有点消极,受不了的同学请绕道或者吐槽我。 我讨厌“迷茫”二字,但到了自己此刻的心情,除了迷茫,想不出还...
    20岁的图书馆阅读 1,661评论 1 0

友情链接更多精彩内容