2021-01-20

css之盒子模型

1.边框

  全写 border:10px solid red
  单独写 border-bottom:10px solid red
  拆分写:
   width 粗细
   style 样式(solid 实线;dashed 虚线;dotted 点状线)
   color 颜色
   top 上
   bottom 下
   right 右
   left 左

<html>
    <head>
        <meta charset="utf-8">
        <title>盒子模型</title>
        <style type="text/css">
            .mydiv{
                background-color: gold;
                width: 300px;
                height: 300px;
                border: 10px solid red;
                border-bottom-style: dashed;
                border-bottom-width: 20px; */
            }
        </style>
    </head>
    <body>
        <div class="mydiv">
            中华人民共和国(the People's Republic of China
                ),简称“中国”,成立于1949年10月1日 ,位于亚洲东部,太平洋西岸, 是工
                人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家,以五星红旗
                为国旗《义 勇军进行曲》为国歌,国徽内容为国旗、天安门、齿轮和麦稻穗
                通用语言文字是普通话和规范汉字
                首都北京,是一个以汉族为主体、56个
                民族共同组成的统一-的多民族国家。
        </div>
    </body>
</html>

  效果图如下:


border.png

2.padding内边距

  解释:边框到content内容的距离;
  设置(padding-top;padding-right;padding-bottom;padding-left)
  padding:50px;四周
  padding:50px 100px;上下50 左右100
  padding:10px 20px 30px 40px;上10 右20 下30 左40

<html>
    <head>
        <meta charset="utf-8">
        <title>盒子模型</title>
        <style type="text/css">
            .mydiv{
                background-color: gold;
                width: 300px;
                height: 300px;
                padding: 10px 100px;
                
            }
        </style>
    </head>
    <body>
        <div class="mydiv">
            中华人民共和国(the People's Republic of China
                ),简称“中国”,成立于1949年10月1日 ,位于亚洲东部,太平洋西岸, 是工
                人阶级领导的、以工农联盟为基础的人民民主专政的社会主义国家,以五星红旗
                为国旗《义 勇军进行曲》为国歌,国徽内容为国旗、天安门、齿轮和麦稻穗
                通用语言文字是普通话和规范汉字
                首都北京,是一个以汉族为主体、56个
                民族共同组成的统一-的多民族国家。
        </div>
    </body>
</html>

  效果图如下:


padding.png

3.背景

  背景颜色 background-color
  背景图片 background-image
  背景重复 background-repeat(no-repeat 不重复;repeat 重复;repeat-x 水平重复;repeat-y 垂直重复)
  背景位置background-position
  背景简写background:gold url() no-repeat center center

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .bg{
                background-color:gold ;
                height: 900px;
                background-image: url(img/logo.png);
                /* 层叠顺序 背景颜色 背景图片 文本内容 */
                background-repeat: no-repeat;
                /* no-repeat不重复 repeat-x水平重复 repeat-y垂直重复 repeat重复 */
                background-position: center center;
                /* 左右 left center right px */
                /* 上下 top center bottom px */
                background: gold url(img/logo.png) no-repeat center center;
            }
        </style>
    </head>
    <body>
        <div class="bg">我爱我的祖国</div>
    </body>
</html>

  效果图如下:


背景.png

4.margin

  简写
   margin:100px;上下左右都是100px
   margin:50px 100px;上下50 左右100px
   margin:50px 100px 150px;上50 左右100 下150
   margin:50px 100px 150px 200px;上50 右150 下150 左200
  单独写
   margin-left:50px
   margin-right:50px
   margin-top:50px
   margin-bottom:50px
  规则
   垂直方向的margin会重叠取最大值
   行内元素只有margin左右 没有margin上下
   width与height队行内元素不启用

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            .parent{
                border: 5px solid gold;
            }
            .son{
                border: 5px solid pink;
                width: 100px;
                margin: 0 auto;
                /* margin 左右为auto可以让块元素在父元素内水平居中; */
                /* margin: 50px; */
                /* margin-top: 50px;
                margin-bottom: 100px; */
                /* margin:50px 100px 150px 200px; */
                /* margin 垂直方向会重叠最大值 */
            }
        </style>
    </head>
    <body>
        <div class="parent">
            <div class="son">son1</div>
            <div class="son">son2</div>
        </div>
    </body>
</html>

  效果图如下:


margin.png

5.行内元素

  span i u b
  display:inline
  不能设置宽高 margin上下也不能设置
  水平排列

6.块元素

  div p li ul ol
  display:block
  垂直排列

7.行内块元素

  display:inline-block
  水平排列可以设置宽高和margin

<html>
    <head>
        <meta charset="utf-8">
        <title>标准文档流</title>
        <style type="text/css">
            div{
                background-color: #FFA500;
                display: inline;
                /* 转换为行内元素 */
                }
            p{background-color: #FFC0CB;}
            span{background-color: green;}
            em{
                border: 2px solid red;
                width: 100px;
                height: 100px;
                margin: 50px 100px;
                /* display: block; */
                /* 转换为块元素 */
                display: inline-block;
                }
            h1{
                background-color: #0000FF;
                height: 100px;
                width: 100px;
                }
            /* 块级元素默认垂直排列 行内元素默认水平排列 */
            /* 块级元素默认宽度100% 行内元素默认宽是内容宽 */
            /* 行内元素宽高设置不启用 */
            /* 行内元素margin上下不启用 */
            /* display属性可以修改行内与块元素 */
            /* inline-block 行内块元素 水平排列可以设置宽高 */
            
        </style>
    </head>
    <body>
        <div>div</div>
        <span>span</span>
        <em>em</em>
        <p>p</p>
        <h1>h1</h1>
    </body>
</html>

  效果图如下:


元素转换.png

8.float

  使元素脱离标准文档流
  父元素和兄弟元素都认为该元素不存在,兄弟元素会占据期位置,文本会留出其位置
  多个float元素默认会水平排列,父元素宽度容不下,则会换行
  如果子元素都浮动了,name父元素也就没有高度了(清除浮动)
  行内元素浮动之后变成块元素

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            *{margin: 0;padding: 0;}
            .container{
                width: 1204px;
                border: 1px solid red;
                height: 904px;
            }
            .left{
                width: 300px;
                height: 900px;
                border: 2px solid green;
                background-color: #FFD700;
                /* display: inline-block; */
                float: left;
                /* 元素脱离文档流 */
                /* 如果子元素都脱离了文档流,父元素就没有高度 */
                /* 如果宽度容不下就换一行 */
            }
            .right{
                width: 900px;
                height: 900px;
                background-color: pink;
                float: left;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="left">left</div><div class="right">right</div>
        </div>
    </body>
</html>

  效果图如下:


9.清除浮动

  1.给父元素手动设置一个高度
  2.让父元素设置一个 overflow:hidden
  3.让父元素最后一个元素不浮动clear:both;

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            /* 清除浮动 */
            * {
                margin: 0;
                padding: 0;
            }
            .up {
                background-color: #FFD700;
                width: 1000px;
                margin: 0 auto;
                /* height: 300px; */
                /* overflow: hidden; */
            }
            .down {
                background-color: #FF1493;
                width: 1000px;
                margin: 0 auto;
                margin-top: 50px;
            }
            .up .son {
                height: 300px;
                background-color: #FFC0CB;
                width: 33.33%;
                float: left;
            }
            .up .son2 {
                background-color: #FFFFFF;
            }
            .up p {
                /* clear: left;
                clear: right; */
                clear: both;
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <div class="up">
        <div class="son">1</div>
        <div class="son son2">2</div>
        <div class="son">3</div>
        <p class="">你好标题</p>
        </div>
        <div class="down">
            你好标题
        </div>
    </body>
</html>

  效果图如下:


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

相关阅读更多精彩内容

友情链接更多精彩内容