DIV+CSS布局(一)

目录

1.页面布局常用标签

2.页面布局常用选择器

3.页面布局常用属性

3.1页面布局常用属性(一)

3.2页面布局常用属性(二)

3.2.1浮动属性:

3.2.2CSS清除浮动(!)


1.页面布局常用标签

    <div></div>无意义块状元素标签
    <span></span>无意义行内元素标签
    <p></p>段落标签
    <ul></ul>无序列表
    <li></li>列表项
    <a></a>超链接标签
    <img />图片标签
    <i></i>斜体标签
    <b></b>粗体标签

2.页面布局常用选择器

id选择器          #id
类选择器          .class
关系选择器        div p、div>p、div,p
伪类选择器        hover
结构性伪类选择器  E:after、E:before、E:nth-child()、E:first-child、E:last-child 

3.页面布局常用属性

3.1页面布局常用属性(一)

字体属性:font-size
文本属性:text-decoration、text-align
首行缩进:text-indent
行高:line-height
宽高属性:width、height、min-height、max-height
背景属性:background
列表属性:list-style
字体颜色:color

3.2页面布局常用属性(二)

定位属性:position
布局属性:display
浮动属性:float、clear
盒子模型:border、margin、padding
圆角边框:border-radius
阴影:text-shadow、box-shadow

3.2.1浮动属性:

  • 浮动定位是指:

        将元素排除在普通流之外

        元素将不在页面中占据空间

        将浮动元素放置在包含框的左边或者右边

        浮动元素依旧位于包含框之内

  • 浮动元素的框可以向左或者向右移动(注意:不能向上或者向下移动,也就是没有float:top;),直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 浮动元素的外边缘不会超过其父元素的内边缘
  • 浮动元素不会互相重叠
  • 浮动元素不会上下浮动
  • 任何元素一旦浮动,display属性将完全失效均可以设置宽高,并且不会独占一行
  • 语法: float:none/left/right; 

给父元素div和3个子元素div设置了宽高和背景色 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box{
            width: 600px;
            height: 600px;
            background: deeppink;
        }
        #box>div:first-child{
            width: 200px;
            height: 200px;
            background: green;
        }
        #box>div:nth-child(2){
            width: 200px;
            height: 200px;
            background: aqua;
        }
        #box>div:nth-child(3){
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>
<body>
    <div id="box">
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>
</html>

1.将绿色div设置左浮动 

将绿色div设置左浮动
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 左浮动 */
            float: left;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>

<body>
    <div id="box">
        <div></div>
        <div></div>
        <div></div>
    </div>
</body>

</html>

 

2.将绿色div设置右浮动 

将绿色div设置右浮动
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 

3.将绿色和蓝色的div设置为右浮动 

将绿色和蓝色的div设置为右浮动
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 

1.将绿色和蓝色的div右浮动,并将红色div的宽和高设置为300px,证明浮动元素不占据位置,将元素排除在普通流之外 

将绿色和蓝色的div右浮动,并将红色div的宽和高设置为300px,证明浮动元素不占据位置
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 300px;
            height: 300px;
            background: red;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 

2.将绿色和蓝色的div右浮动,并将红色div的宽和高设置为300px;再将红色设置为右浮动,证明浮动元素不会互相重叠

将绿色和蓝色的div右浮动,并将红色div的宽和高设置为300px;再将红色设置为右浮动,证明浮动元素不会互相重叠
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 300px;
            height: 300px;
            background: red;
            /* 右浮动 */
            float: right;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 3.将绿色、蓝色和红色div设置右浮动

将绿色、蓝色和红色div设置右浮动
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

1.span行内元素:没有宽高属性,并且不会独占一行。也就是说设置了宽高也没有效果  

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
        .span1{
            background: yellow;
            width: 200px;
            height: 200px;
        }
        .span2{
            background: palegreen;
            width: 200px;
            height: 200px;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
    <span class="span1">我是span</span>
    <span class="span2">我是span</span>
</body>

</html>

2.span行内元素:没有宽高属性,并且不会独占一行。也就是说设置了宽高也没有效果 。但是任何元素一旦浮动,display属性将完全失效均可以设置宽高,并且不会独占一行

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            width: 600px;
            height: 600px;
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
        .span1{
            background: yellow;
            width: 200px;
            height: 200px;
            float: left;
        }
        .span2{
            background: palegreen;
            width: 200px;
            height: 200px;
            float: left;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
    <span class="span1">我是span</span>
    <span class="span2">我是span</span>
</body>

</html>

1.当父元素div不设置宽高且所有元素都不设置浮动时,父元素div会感知子元素的宽高,所以下面例子中,div的高为子元素的总高,又因为div是独占一行的,所以下面例子中div的宽度是满宽。

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            /* float: right; */
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            /* float: right; */
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            /* float: right; */
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>
</html>

 2.当父元素div不设置宽高,绿色盒子右浮动时

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            /* float: right; */
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            /* float: right; */
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 3.当父元素div不设置宽高,绿色盒子和蓝色右浮动时

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            /* float: right; */
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 

  4.当父元素div不设置宽高,绿色、蓝色和红色盒子都右浮动时

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 

5.在父元素div不设置宽高的情况下,让父元素可以感知子类的高度。可以设置overflow:hidden

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
            /* .在父元素div不设置宽高的情况下,
            让父元素可以感知子类的高度。可以设置overflow:hidden */
            overflow: hidden;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 6.在父元素div不设置宽高的情况下,让父元素可以感知子类的高度。也可以给父元素div设置浮动。此时父元素可以感知子类高度,看不到父元素只是因为被子元素盖住了。

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
            /*下面第一个截图,是设置左浮动*/
            float: left;
            /*下面第一个截图,是设置右浮动*/
            /*float: right;*/
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>

</html>

 7.在父元素div不设置宽高的情况下,让父元素可以感知子类的高度。也可以给父元素div设置浮动。 这个例子为了对比6,再添加了第4个子元素,以证明父元素的存在。

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
            float: right;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }

        #box>div:last-child{
            width: 300px;
            height: 300px;
            background-color: blue;
            float: left;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>
</body>

</html>

 

3.2.2CSS清除浮动(!)

  • 清除浮动是为了抵消其他元素浮动对当前元素产生的影响
  • 属性:clear
  • 值:left、right、both
  • 清除浮动常用的方式:

        1.结尾处加空div标签clear:both(或在下一个元素上加clear:both)

        2.浮动元素的父级div定义overflow:hidden

        3.浮动元素的父元素定宽高

clear:both实现清除浮动

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动属性</title>
    <style>
        #box {
            /* width: 600px;
            height: 600px; */
            background: deeppink;
            float: right;
        }

        #box>div:first-child {
            width: 200px;
            height: 200px;
            background: green;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(2) {
            width: 200px;
            height: 200px;
            background: aqua;
            /* 右浮动 */
            float: right;
        }

        #box>div:nth-child(3) {
            width: 200px;
            height: 200px;
            background: red;
            /* 右浮动 */
            float: right;
        }

        #box>div:last-child{
            width: 300px;
            height: 300px;
            background-color: blue;
            /* 清除浮动-
            假装其他元素没有浮动的前提下,当前元素该在哪个位置就在哪个位置 */
            clear: both;
        }
    </style>
</head>

<body>
    <div id="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
    </div>
</body>

</html>

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值