zoukankan      html  css  js  c++  java
  • CSS属性设置

    CSS属性设置

    一 字体属性

    -1. font-weight: 文字粗细

    • normal 默认值. 标准粗细
    • bold 粗体
    • bolder 更粗
    • lighter 更细
    • 100~900 设置具体粗细,400相当于normal,700等同于bold
    • inherit 继承父元素字体的粗细值

    -2. font-style: 文字风格

    • normal 正常,默认就是正常
    • italic 倾斜

    -3. font-size: 文字大小

    • 单位为px,em
    • fs: 一般是12px13px14px
    • 注意:
      1. 通过font-size设置文字大小一定要带单位
      2. 如果设置成inherit表示继承父元素的字体大小值

    -4. font-family: 文字字体

    • font-family:"Microsoft Yahei", "微软雅黑", "Arial", sans-serif
    • 常见字体:
      • serif衬线字体
      • sans-serif非衬线字体
      • 中文有: 宋体,微软雅黑,黑体.
    • 注意:
      1. 设置的字体必须是用户电脑里已经安装的字体,浏览器会使用它识别第一个值.
      2. 如果取值为中文,需要用单或双引号括起来. 是不是中文都括起来就好.

    -5. 文字属性简写

    /*font-weight: bolder;*/
    /*font-style: italic;*/
    /*font-size: 50px;*/
    /*font-family: 'serif','微软雅黑';*/
    简写为
    font: bolder italic 50px 'serif','微软雅黑'; 
    

    -6. color: 文字颜色

    取值 举例格式 描述
    英文单词 color:red; 大多数颜色都有对应的英文单词描述,但英文单词终究有其局限性:无法表示所有颜色
    rgb color:rgb(255,0,0) 什么是三原色? red,green,blue 什么是像素px? 对于光学显示器,一整个屏幕是有一个个点组成,每一个点称为一个像素 点,每个像素点都是由一个三元色的发光元件组成,该元件可以发出三种颜 色,red,green,blue。 发光元件协调三种颜色发光的明亮度可以调节出其他颜色 格式:rgb(255,0,0); 参数1控制红色显示的亮度 参数2控制绿色显示的亮度 参数3控制蓝色色显示的亮度数字的范围0-255,0代表不发光,255代表发光,值越大越亮红色:rgb(255,0,0) 绿色:rgb(0,255,0) 蓝色:rgb(0,0,255) 黑色:rgb(0,0,0) # 所有都不亮 白色:rgb(255,255,255) # 所有都最亮 灰色:只要让红色/绿色/蓝色的值都一样就是灰色,而且三个值越小,越偏 黑色,越大越偏白色
    rgba color:rgba(255,0,0,0.1); rgba到css3中才推出,比起rgb多了一个a,a代表透明度 a取值0-1,取值越小,越透明
    十六进制 color: #FF0000; #FFEE00 其中FF代表R,EE代表G,00代表B 只要十六进制的颜色每两位都是一样的,那么就可以简写为一个, 例如#F00 等同于#FF0000

    -7. 举例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>字体属性</title>
        <style>
            p {
                /*字体的大小*/
                font-size: 100px;
                /*字体的家族,当第一个值本机没有时,就会往下找,直到找到一个本机有的家族,都没有就使用浏览器默认家族*/
                font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
                /*设置字体的粗细*/
                font-weight: bold;
                /*设置字体的样式*/
                font-style: italic;
                
                /*可以统一写到font属性中*/
                font: bold italic 100px "Bitstream Vera Sans Mono";
    
                /*设置颜色的四种方式*/
                /*英文单词关键字赋值*/
                color: red;  
                /*十六进制赋值*/
                color: #8a8a8a;
                /*rgb 三原色 red;green;blue调色
                每个数值在0-255之间,也可以使用百分比(%)调色
                */
                color: rgb(255,255,12);
                /*rgba 三原色加透明度(透明度在0-1之间) */
                color: rgba(30%,20%,40%,0.1);
            }
        </style>
    </head>
    <body>
        <p>
            你好啊哈哈哈哈
        </p>
    </body>
    </html>
    

    提示: 一般字体的配置都是在开发前统一设置好的.

    二 文本属性

    -1. text-align: 规定元素中的文本的水平对齐方式.

    • text-aliign:left; 表示左边对齐,默认值
    • text-align:right; 表示右对齐
    • text-align:center; 表示居中对齐
    • text-align:justify; 俩端对齐

    -2. text-decoration: 文本装饰

    • text-decoration=none; 默认.定义标准的文本,通常用来去掉a标签的下划线
    • text-decoration=unerline; 定义文本下的一条线.
    • text-decoration=overline; 定义文本上的一条线.
    • text-decoration=line-through;定义穿过文本下的一条线.
    • text-decoration=inherit; 继承父元素的text-decoration属性的值.

    -3. text-indent: 首行缩进

    • 将段落的第一行缩进 32像素.

    • p {

      ​ text-indent: 32px;

      }

    -4.line-height: 行高

    行高介绍图:

    img

    -5. 举例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS属性之文本</title>
        <style>
            div {
                 600px;
                height: 600px;
                /*字体的大小*/
                font-size: 24px;
                /*字体的颜色*/
                color: rgba(10%,20%,30%,0.5);
                /*文本水平对齐*/
                text-align: center;
                /*文本垂直方向对齐方式
                注意: 设置成和盒子一样高就可以实现文本垂直居中
                */
                line-height: 600px;
                /*文本装饰 可以是关键字也可以是颜色*/
                text-decoration: none;
                /*文本的首行缩进 
                2em就是俩倍的文本px大小
                */
                /*text-indent: 2em;*/
                background-color: yellow;
            }
        </style>
    </head>
    <body>
        <div>
            <span>你好啊,嘿嘿....</span>
        </div>
    </body>
    </html>
    

    三 背景属性

    注意: 没有宽高的标签,即便设置了背景也无法显示

    属性介绍

    • background-color:颜色; 设置标签的背景颜色的
    • background-image:url(""); 设置标签的背景图片
    • background-size: widthpx hrightpx; 设置标签的图片背景的宽高.
    • background-repeat: ;设置背景图片的平铺方式
    • background-attachment: ; 设置标签的背景图片在标签中固定或随着页面滚动而滚动
    • background-position: ; 前端的坐标轴x轴为宽,y轴为高,左上角为起始点.
    • inherit: ;设置从父元素继承background数值值;
    • 背景缩写 可以将上面的所以属性放到background:;

    -1. 背景属性缩写

    示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css属性之图片背景</title>
        <style>
    
            .box1 {
                 600px;
                height: 600px;
                /* 背景颜色为黄色 */
                background-color: yellow;
                /* 背景图片为0.jpg */
                background-image: url("0.jpg");
                /* 背景图片大小宽为600px 高度自适应 */
                background-size: 600px;
                /* 图片平铺关闭 */
                background-repeat: no-repeat;
                /* 图片的位置在水平和垂直居中 */
                background-position: center center;
                /* 随着滚动条滚动 在盒子内都可以显示,不会随着滚动条的滚动固定消失
                但需要注意的是 用了position再用fixed会出现页面布局的混乱 
                */
                /*background-attachment: fixed;*/
            } 
            .box1 {
                 600px;
                height: 600px;
                /* 属性的位置放的也是有讲解的  */
                background: yellow url("0.jpg") no-repeat center center/600px;
            }
    
            .box2 {
                 600px;
                height: 1000px;
            }
        </style>
    </head>
    <body>
        <div class="box1">
    
        </div>
        <div class="box2">
    
        </div>
    </body>
    </html>
    

    -2. 背景图片和插入图片的区别

    1. 背景图片仅仅只是一个装饰,不会占位置.

      插入图片会占用位置.

    2. 背景图片有定位属性,可以很方便的控制图片的位置.

      而插入图片不可以

    3. 插入图片语义比背景图片的语义要强,所以在企业开发中如果你的图片想被搜索引擎收录

      那么推荐使用插入图片.

    4. 背景图片的盒子内容,即宽高得自己设置,而插入图片是有盒子大小的.

    练习

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>插入图片和背景图片的区别</title>
        <style>
            .box1 {
                 500px;
                height: 324px;
                background-image: url("0.jpg");
                background-position: center center;
                text-align: center;
                line-height: 324px;
                font-size: 24px;
            }
            .box2 {
                font-size: 24px;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            你好啊,我的图片是背景图片,我可以在上面显示
        </div>
        <div class="box2">
            <img src="0.jpg" alt="">
            我不太好,我的图片是插入图片,我只能被放在下面显示.
        </div>
    </body>
    </html>
    

    -3. 背景图片练习

    背景图居中显示

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>背景图片属性练习</title>
        <style>
            .box1 {
                 800px;
                height: 800px;
                background-image: url("img/bg2.jpg");
                background-size: 800px;
                background-repeat: no-repeat;
                background-position: center center;
                margin-left: 25%;
            }
        </style>
    </head>
    <body>
        <div class="box1">
    
        </div>
    </body>
    </html>
    

    背景图片和背景图片拼接

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>背景拼接练习</title>
        <style>
            .box1 {
                margin:0;
                 1280px;
                height: 720px;
                background-image: url("img/bg1.jpg");
                background-size: 100% 100%;
            }
            .box2 {
                 1280px;
                height: 720px;
                background-image: url("img/ksyx.png");
                background-repeat: no-repeat;
                background-position: center bottom;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            <div class="box2">
    
            </div>
        </div>
    </body>
    </html>
    

    背景图片和插入图片拼接

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>背景图片拼接</title>
        <style>
            .box1 {
                 1280px;
                height: 720px;
                background-image: url("img/bg1.jpg");
            }
    
            .img1 {
                display: block;
                padding-top: 611px;
                padding-left: 495px;
            }
            a {
                text-decoration: none;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            <a href="https://dss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3397664853,2770170984&fm=26&gp=0.jpg">
                <img class="img1" src="img/ksyx.png" alt="">
            </a>
        </div>
    </body>
    </html>
    

    导航条案例

    是为了发送的背景图片太大了,可以先将图片在服务器那个压缩,然后到客户端再平铺成原来像素的大小.即加快了上网效率.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>导航条</title>
    
        <style type="text/css">
             .navbar {
                 margin: 0 auto;
                  920px;
                 height: 50px;
                 background-image: url("dht.png");
                 background-repeat: repeat-x;
    
            }
    
        </style>
    </head>
    <body>
    
    <div class="navbar">
    </div>
    </body>
    </html>
    

    -4. rgba与opacity

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>rgba和opacity的区别</title>
        <style>
            .box1 {
                 800px;
                height: 800px;
                font-size: 24px;
                color: red;
                background-color: rgba(4,4,44,0.6);
                /* 可以设置整个标签内的透明度 */
                opacity: 0.6;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            我的透明度如果被background-color属性配置rgba是不会变哦
        </div>
    </body>
    </html>
    

    -5. 精灵图

    1. 什么是CSS精灵图(可以通过浏览器抓包分析: 微博,京东,淘宝都有精灵图)

      CSS精灵图是一种图像合成技术

    2. CSS精灵图的作用

      一个电商网址可能有很多图片,比如有10张,这就要求客户端发10此请求给服务端

      但其实一次请求的宽带就足够容纳10张图片的大小

      精灵图的作用就是用来减少请求次数,以及降低服务器处理压力.

    3. 如何使用CSS精灵图

      CSS的精灵图需要配合背景图片和背景定位来使用

    4. 强调: 切图需要用到framewords软件,可以知道每个图片具体宽多少个像素,高多少个像素,该软件与ps属于一个家族

      在右边,图层-->位图-->出一把锁固定住图片

      然后左侧,有一个切片工具,框住图片

    img

    练习:如何拿到对应的小图

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>取精灵图中的小图案</title>
        <style>
            .box1 {
                 86px;
                height: 28px;
                background-image: url(img/jlt.png);
                background-repeat: no-repeat;
                background-position: -425px -100px;
            }
        </style>
    </head>
    <body>
        <div class="box1">
    
        </div>
    </body>
    </html>
    

    四 边框属性

    • border- ; 边框的宽度
    • border-style: ; 边框的风格
    • border-color: ; 边框的颜色

    例子:

    /* 分开配置border */
    li {
        border- 2px;
        border-style: solid;
        border-color: red;
    }
    
    /* 通用使用简写方式 */
    li {
        /* 值没有先后顺序 */
        border: 2px solid red;
    }
    

    边框样式

    描述
    none 无边框
    dotted 点状虚线边框
    dashed 矩形虚线边框
    solid 实线边框

    除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示:

    li {
        border-top-style: dotted;
        border-top-color: red;
        border-right-style: solid;
        border-bottom-style: dotted;
        border-left-style: none;
    }
    

    border-radius

    用这个属性能实现圆角边框的效果

    border-radius设置为长或高的一半即可得到一个圆形.

    五 盒子模型

    -1. 什么是CSS盒子模型?

    HTML文档中的每个元素都被比喻成矩形盒子. 盒子模型通过四个边界来描述: margin(外边距),border(边框),padding(内边距),content(文本内容),如果把一个盒子比喻成一个壁挂相片.那么:

    """
    -- 外边框margin 就相当于一个相框与另外一个相框之间的距离.
    -- 边框border	就相当于相框
    -- 内边框padding  就相当于内容/相片到边框的距离.
    -- 宽度width/高度height高度  就相当于可以存放内容/相片的区域.
    ps: 可以通过谷歌开发者工具查看盒子的各部分属性.
    """
    

    如图所示:

    img

    -2. 盒子模型的高度和宽度

    -2.1 内容的宽度和高度

    • 通过标签的width 和 height 属性设置

    -2.2 元素/盒子模型的宽度和高度.

    • 宽度 = 左边框 + 左内边距 + width(内容的宽) + 右内边距 + 右边框
    • 高度 = 左边框 + 左内边距 + height(内容的高) + 右内边距 + 右边框

    -2.3 元素/盒子模型空间的宽度和高度

    • 宽度 = 左外边距 + 左 边框 + 左内边距 + width(内容的宽) + 右内边距 + 右边框 + 右外边距
    • 高度 = 左外边距 + 左 边框 + 左内边距 + height(内容的高) + 右内边距 + 右边框 + 右外边距

    -2.4 示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子模型宽度和高度</title>
        <style>
            span,a,b,strong {
                display: inline-block;
                 100px;
                height: 100px;
                border: 6px solid #000;
                padding: 20px;
                margin: 20px;
            }
        </style>
    </head>
    <body>
        <span>我是span</span>
        <a href="#"> 我是a链接</a>
        <b>我是加粗</b>
        <strong>我是强调</strong>
    </body>
    </html>
    

    -2.5 补充: 如何设置 height: 100%;

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css宽高属性之百分比</title>
        <style>
            /* 这里的box1 div 标签的父级为 body 和父父级标签 html
             此时下面的高度百分比设置才会有效
             */
            html,body {
                height: 100%;
            }
    
            .box1 {
                /* 占的是父父盒子html 就 相当于屏幕的百分比  当拉动网页窗口大小时,宽度一直会占网页的百分之80 */
                 80%;
                /* 而高不能直接设置百分比, 此时会因为没有参照标签,0 * 半分比 = 0 也就没有了高度 */
                /* 如果想要该高度也可以通过百分比设置 即需要从它的父级标签们一步一步的配置下来  */
                height: 100%;
    
                margin: 0 auto;
                background-color: yellowgreen;
            }
        </style>
    </head>
    <body>
        <div class="box1">
    
        </div>
    </body>
    </html>
    

    -3. CSS显示模式:块级,行内,行内块级(重点)

    在HTML中,HTML将所有的标签分为俩类,分别是容器级和文本级.

    在CSS中,CSS将所有标签分为三类, 分别是块级元素,行内元素行内块级元素.

    -3.1 在HTML中容器级和文本级

    """
    容器级标签:  可以嵌套其他的所有标签
    	div,h,ul>li,ol>li,dl>dt+dd
    
    文本级标签: 只能嵌套文字,图片,超链接.
    	span,p,buis,strong,em,ins,del,b
    """
    

    -3.2 CSS中块级与行级,行内块级

    """
    块级:块级元素会独占一行,所有的容器类标签都是块级,文本标签中的p标签也是块级
    	div,h,ul,ol,dl,li,dt,dd, 还有p标签
    
    行内级:
    	span,buls,strong,em,ins,del,b
    	
    行内块级:
    	img
    """
    

    -3.3 块级元素,行内级元素和行内块级元素有什么区别?

    """
    - 1. 块级元素 block
    	独占一行;
    	可以设置宽高;
    		若没有设置宽度,默认和父元素一样宽
    		若设置了宽高,就按照设置的显示
    
    - 2. 行内元素 inline
    	不会独占一行
    		不可以设置宽高
    		盒子宽高默认和内容一样
    
    - 3. 行内块级元素 inline-block
    	不会独占一行;
    	可以设置宽高;
    """
    

    -3.4 示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>css标签分类</title>
        <style>
            /* 块级 */
            h1,div,p {
                background-color: red;
                 200px;
                height: 200px;
            }
    
            /* 行内级   */
            span,b,strong {
                background-color: greenyellow;
                 200px;
                height: 200px;
            }
    
            /*  行内块  */
            img {
                 200px;
            }
        </style>
    </head>
    <body>
        <!--    块级-->
        <h1>我是标题</h1>
        <div>我是div</div>
        <p>我的段落</p>
        <hr>
    
        <!--  行内  -->
        <span>我是span</span>
        <b>我是强调,加粗</b>
        <strong>我也是强调,加粗</strong>
        <hr>
    
        <!-- 行内块 -->
        <img src="0.jpg" alt="">
        <img src="0.jpg" alt="">
    </body>
    </html>
    

    -3.5 网页效果:

    -4. CSS显示模式转换display属性(重点)

    用于控制HTML元素的显示效果

    意义
    display:"none" HTML文档中元素存在,但是在浏览器中不显示.一般用于配合JavaScript代码使用
    display:"block" 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分
    display:"inline" 按行内元素显示,此时再设置元素的width,height,margin-top,margin-bottom和float属性都不会有什么影响.
    display:"inline-block" 使元素同时具备行内元素和块级元素的特点.

    display:"none"与visibility:hidden 的区别

    visibility: hidden: 可以隐藏某个元素,但隐藏的元素仍需要占用与未隐藏之前一样的空间.也就是说,该元素虽然被隐藏了,但是仍然会影响布局.

    display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间.也就说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失.

    display:"none"与visibility:hidden 的区别

    visibility: hidden: 可以隐藏某个元素,但隐藏的元素仍需要占用与未隐藏之前一样的空间.也就是说,该元素虽然被隐藏了,但是仍然会影响布局.

    display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间.也就说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失.

    -5. div和span标签

    布局都是用块级元素,而行内元素是控制内容显示的.

    -5.1 div标签

    • 一般用于配合css完成网页的基本布局

    -5.2 span标签

    • 一般用于配合css修改网页中的一些局部信息
    • 比如:一行文字我们只为一部分加样式

    -5.3 div和span有什么区别?

    • div一般用于排版,而span一般用于局部文字的样式
    • 站在css的角度: div是一个块级元素,独占一行且可以设置宽高,而span是一个行内级元素,不会单独占一行,且不能设置宽高
    • 站在HTML的角度: div是一个容器级标签,而span标签是一个文本级标签

    -5.5 示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>div和span标签的区别</title>
        <style>
            .box1 {
                 200px;
                height: 200px;
                background-color: #e66100;
            }
            span {
                 200px;
                height: 200px;
                background-color: yellowgreen;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            <p>
                你好啊
            </p>
        </div>
        <span>
            1111111
            <p>你好啊</p>
        </span>
    </body>
    </html>
    

    六 盒子模型各部分详解

    -6.1 border 边框

    同时设置四条边的边框: border:边框的宽度 边框的样式 边框的颜色

    分别设置四条边的边框:

    • border-left:边框的宽度 边框的样式 边框的颜色
    • border-top:边框的宽度 边框的样式 边框的颜色
    • border-right:边框的宽度 边框的样式 边框的颜色
    • border-bottom:边框的宽度 边框的样式 边框的颜色

    分别指定宽度、格式、颜色 :

    1. 连写:(分别设置四条边的边框)

      • border- 上 右 下 左
      • border-style: 上 右 下 左
      • border-color: 上 右 下 左
    2. 注意点:

      • 这三个属性时按照顺时针,即上、右、下、左来赋值的
      • ​ 这三个属性的取值省略时的规律
      • ​ 省略右面,右面默认同左边
      • ​ 省略下部,下面默认跟上面一样
      • 只留一个,那么其余三边都跟这一个一样
    3. 了解非连写

    border-left- ;
    border-left-style: ;
    border-left-color: #000;
    
    
    border-top- ;
    border-top-style: ;
    border-top-color: #000;
    
    
    
    border-right- ;
    border-right-style: ;
    border-right-color: #000;
    
    
    border-bottom- ;
    border-bottom-style: ;
    border-bottom-color: #000;
    
    其他:
    http://www.w3school.com.cn/cssref/pr_border-style.asp
    
    1. 边框的样式

      • none 无边框。
      • dotted 点状虚线边框。
      • dashed 矩形虚线边框 .
      • solid 实线边框。
    2. border-radius

    * 单独设置一个角:数值越大,弧度越大*/
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
    
    /* 缩写设置 */
    border-radius: 20px;/* 所有角设置相同值 */
    border-radius: 20px 10px 10px 20px; /* 顺时针顺序:上左 上右 下左 下右*/
    
    /* 百分比设置 */
    border-radius: 50%;
    
    
    /* 椭圆圆弧设置 */
    border-radius: 25%/50%; /* 前面一个值代表水平方向的半径占总宽度的,后面一个值代表垂直方向 */
    

    边框练习:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            a {
                text-decoration: none;
            }
            .actor img{
                border: 1px solid pink;
                border-radius: 50%;
                 100px;
                margin-top: 5%;
                margin-left: 5%;
            }
            .actor span {
                font-size: large;
                color: pink;
            }
        </style>
    </head>
    <body>
        <div class="actor">
            <img src="0.jpg" alt="">
            <a href="#">
                <span>JKey</span>
            </a>
        </div>
    </body>
    </html>
    

    -6.2 padding内边距: 边框与内容的距离就是内边距

    非连写:

    padding-top: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    padding-left: 20px;
    

    连写:

    padding: 上 右 下 左;
    

    注意:

    1. 给标签设置内边距后,标签内容占有的宽度和高度会发生变化.设置padding之后标签内容的宽高是在原宽高的基础上加上padding值,如果不想改变实际大小.那就在用宽高减掉padding对应方向的值.
    2. padding是添加给父级的,改变的是父级包含的内容位置.
    3. 内边距也会有背景颜色

    练习:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>内边距padding属性</title>
        <style>
            .box1 {
                /* 为设置了padding之后保证盒子的大小不变
                 将原父盒子大小改为+上外边距的值=原父盒子的大小
                 */
                 100px;
                height: 100px;
                border: 1px solid pink;
                padding-top: 50px;
                padding-right: 50px;
                padding-bottom: 50px;
                padding-left: 50px;
            }
    
            .box2 {
                 202px;
                height: 202px;
                border: 1px solid yellowgreen;
                padding: 50px;
    
                /* 做的操作就类似与和上面自己计算盒子的大小一样 */
                box-sizing: border-box;
            }
        </style>
    </head>
    <body>
        <div class="box1">
            我是内容1啊
        </div>
        <div class="box2">
            我是内容2啊
        </div>
    </body>
    </html>
    

    -6.3 外边距:标签与标签之间的距离就是外边距

    非连写:
    	margin-top:20px;
        margin-right:20px;
        margin-bottom:20px;
        margin-left:20px;
    
    连写
    	margin:上 右 下 左;
    
    注意	
    	1、外边距的那一部分是没有背景颜色的
    	2、外边距合并现象
       		在默认布局的水平方向上,默认两个盒子的外边距会叠加
       		而在垂直方向上,默认情况下两个盒子的外边距是不会叠加的,会出现合并现象,谁的外边距比较大,就听谁的
    

    练习:

    1.外边距合并现象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>外边距合并现象
        </title>
        <style>
            span {
                display: inline-block;
                 100px;
                height: 100px;
                border: 1px solid #000;
            }
    
            div {
                height: 100px;
                border: 1px solid #000;
            }
    
            /*水平方向上。外边距会叠加*/
            .hezi1 {
                margin-right: 50px;
            }
    
            .hezi2 {
                margin-left: 100px;
            }
    
            /*垂直方向上。外边距不会叠加,会合并成一个,谁比较大就听谁的*/
            .box1 {
                margin-bottom: 50px;
            }
    
            .box2 {
                margin-top: 100px;
            }
        </style>
    </head>
    <body>
    <!--
    快捷创建
    span.hezi${我是span}*2
    -->
    
    <span class="hezi1">我是span</span><span class="hezi2">我是span</span>
    
    <div class="box1">我是div</div>
    <div class="box2">我是div</div>
    </body>
    </html>
    

    2.margin-top塌陷

    两个嵌套的盒子,内层盒子设置margin-top后会将外层盒子一起顶下来,解决方法如下:

    • 1、外部盒子设置一个边框
    • 2、外部盒子设置 overflow: hidden; 当子元素的尺寸超过父元素的尺寸时,内容会被修剪,并且其余内容
      • 不可见的,此属性还有清除浮动、清除margin-top塌陷的功能。
    • 3、使用伪元素类:
    .clearfix:before{
        content: '';
        display:table;
    }
    
    #示范
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子模型宽度和高度</title>
        <style>
            .outter {
                background-color: green;
                 300px;
                height: 300px;
    
                /*方式一*/
                /*border: 1px solid #000;*/
    
                /*方式二*/
                /*overflow: hidden;*/
            }
            .inner {
                background-color: red;
                 200px;
                height: 200px;
    
                margin-top: 100px;
            }
    
            /*方式三*/
            .clearfix:before {
                display: table;
                content: "";
            }
    
        </style>
    </head>
    <body>
    
    <div class="outter clearfix">
        <div class="inner"></div>
    </div>
    </body>
    </html>
    

    -6.4 内边距vs外边距

    -1. 在企业开发中,一般情况下如果需要控制嵌套关系盒子之间的距离

    • 应该首先考虑padding
    • 其次考虑margin
    • margin本质上是用于控制兄弟之间的,padding本质才是控制父子关系的.

    -2. 如果俩个盒子是嵌套的关系,那么设置了里面一个盒子顶部的外边距,那么外面一个盒子也会被顶下来.

    • 如果外面的盒子不想被遗弃顶下来,那么可以给外面的盒子设置一个边框属性.

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>padding用于父子级,margin用于兄弟级</title>
        <style>
            .father {
                 302px;
                height: 302px;
                background-color: yellow;
                /* 在父盒子上设置padding */
                padding: 50px;
                box-sizing: border-box;
                border: 1px solid red;
            }
            .son {
                 100px;
                height: 100px;
                background-color: red;
            }
    
            .father1 {
                 300px;
                height: 300px;
                background-color: yellow;
                border: 1px solid red;
            }
    
            .son1 {
                 100px;
                height: 100px;
                background-color: red;
                /* 在儿子盒子里设置margin
                但是它的父盒子必须设置border,要有个参照盒子
                */
                margin: 50px;
            }
        </style>
    </head>
    <body>
    
        <div class="father">
            <div class="son">
    
            </div>
        </div>
        <div class="father1">
            <div class="son1">
    
            </div>
        </div>
    </body>
    </html>
    

    -6.5 盒子居中和内容居中

    内容居中

    -1. 让一行内容在盒子中水平且垂直居中.

    /* 水平居中 */
    text-algin: center;
    
    /* 垂直居中 */
    line-height: 盒子的高度px;
    

    -2. 让多行内容在盒子中垂直水平居中(水平居中与单行内容一样)

    让行高与盒子高度一样,只能让一行内容垂直居中,如果想让多行内容垂直居中,

    比如下面这种,想让div中的多行内容垂直居中,一看div中的文字是两行,每一行

    的行高为20,加起来就是40,80-40=40,需要让文字距离顶部pading为20,底部padding为20

    height: 80px;
    line-height: 20px;
    
    padding-top: 20px;
    padding-bottom: 20px;
    box-sizing: border-box;
    

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子居中和内容居中</title>
        <style>
            div {
                 300px;
                height: 300px;
                background-color: red;
    
                /*多行内容水平居中与单行一样*/
                text-align: center;
    
                /*多行内容垂直居中*/
                line-height: 30px;
                padding-top: 120px;
                box-sizing: border-box;
            }
        </style>
    </head>
    <body>
    <div>
        我是文字我是文字我是文字我是文字我是文字我是文字我是文字
    </div>
    </body>
    </html>
    

    盒子居中

    text-align center: 只能让盒子中存储的文字,图片水平居中

    如果想让盒子自己相对于父元素水平居中,需要用到

    margin: 0 auto;

    例子:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>盒子和内容居中显示</title>
        <style>
            .box1 {
                 500px;
                height: 500px;
                /*border: 1px solid red;*/
                /* 将盒子相对于屏幕居中 0表示的是垂直方向的外边距, auto相当于水平方向的外边距自适应 */
                margin: 0 auto;
            }
            .son {
                text-align: center;
                /*line-height: 500px;*/
                padding-top: 208px;
                /*box-sizing: border-box;*/
            }
        </style>
    </head>
    <body>
        <div class="box1">
            <div class="son">
                红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
                红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
                红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
                红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
            </div>
        </div>
    </body>
    </html>
    

    -6.6 防止文字溢出 word-break, break-all

    例子

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>欢迎界面</title>
        <style type="text/css">
    
            div {
                 200px;
                height: 200px;
    
                /*字母、数字溢出,可以用下列属性控制自动换行:允许在单词内换行。
                */
                word-break: break-all;
            }
    
            .box1 {
                background-color: red;
            }
    
            .box2 {
                background-color: green;
            }
    
            .box3 {
                background-color: blue;
            }
        </style>
    </head>
    <body>
    <div class="box1">
        <p>asdfasdfsadfasdfasdfasdfad sfasdfsadasDSfafsafaasdfasdfasfdqwerqwerwqersdfqerwrsdf你好我的啊啊啊啊啊啊啊啊啊啊啊啊</p>
    </div>
    
    <div class="box2">
        遗憾白鹭上青天两个黄鹂鸣翠柳啊哈哈哈
    </div>
    
    <div class="box3">我是12312312312312312312312312312312312312312312312312312312312我</div>
    </body>
    </html>
    

    -6.7 清除默认边距

    """
    - 1、为什么要清空默认边距(外边距和内边距)
    	- 浏览器会自动附加边距,在企业开发中为了更好的控制盒子的宽高和计算盒子的宽高等等
    	- 编写代码之前的第一件事情就是清空默认的边距
    	
    - 2. 如何清空默认的边距
    * {
    	margin: 0;
    	padding: 0;
    }
    
    - 3.注意点:
    	- 通配符选择器会找到(遍历) 当前界面中所有的标签,所以性能不好.
    	- 拷贝代码
      					body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{
                margin:0;
                padding:0;
            }
    
    """
    
  • 相关阅读:
    javascript函数的定义和调用(包括方法)
    iterable(遍历)
    循环
    C#基础知识 简单说明泛型的优点
    C#基础知识 yield与foreach
    C#基础知识 结构与类的区别
    Asp.net MVC 生成zip并下载
    Asp.net MVC 填充word并下载
    Asp.net MVC 简单实现生成Excel并下载
    CTF中怎么看phpinfo
  • 原文地址:https://www.cnblogs.com/jkeykey/p/14481284.html
Copyright © 2011-2022 走看看