css深入

padding的使用:

<!DOCTYPE html>
<html lang="en">
<head>    
    <meta charset="UTF-8">
    <title> </title>
    <style>
            *{
                    padding:0;
                    margin:0;
                }
            .box{
                    200px;
                    heigth:200px;
                    backgroud-color:red;
                    /*上下左右*/
                    padding:10px
                    /*上下  左右*/
                    padding:20px 30px;
                    /* 上   左右  下*/
                     padding:20px 30px 40px;
                    /* 上  右  下   左*/
                    padding:10px 20px 30px 40px;
     </style>

<body>    标准文档流  父子之间调整位置
        
    <div class="box">alex</div>
</body>
</html>
                    
padding

border的使用:

  

.box{
        200px;
        heigth:200px;
        backgroud-color:red;
    /*根据方向来设置border属性*/
        border-left:2px solid green   左边框大小2px 实线 绿色
        border-right:3px dotted yellow;   右边框大小 3px 圆点 黄色
        border-top:4px  double purple;   上边框大小4px  双实线 紫色
        border-bottom: 5px dashed green;  下边框大小5px  虚线  绿色
   


       第二种设置方法

          border-left-style:solid;

           border-left- 2px;

            border-left-color:green;

       简单设置上下    左右
border-5px 10px;
border-color: green bliue;
border-style:solid  double;

制作三角形: 强行挤压出来的

0px;
heigth:0px;
border-bottom:20px solid red;
border-bottom:20px solid transparent;
border-right:20px solid transparent;

制作圆:

200px;
heigth:200px;
backgroud-color: red;
第一种方法
border-radius:100px   圆角设置为半径
第二种方法
border-radius:50%;

颜色设置的三种形式:

第一种:单词表示法

red  green blue purple pink yellow........

第二种 rgb表示法               三原色:     r:red红色 g:green绿色  b:blue蓝色     

rgb(0,0,0)-rgb(255,255,255)

黑色:backgroud-color:rgb(0,0,0)

白色  backgroud-color:rgb(255,255,255)

黄色   backgroud-color:rgb(255,255,0)

第三种 十六进制表示法:

红色: #ff0000 = #f00   其实和rgb类似  只是转换成十六进制了 而且不用 逗号 隔开了

标准文档流下 margin 垂直方向上的坑:

当给两个标准流下的盒子 设置垂直方向的上的margin时,会以较大的为准,这种现象叫做塌陷.

    <title>塌陷</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .box1{
             200px;
            height: 180px;
            background-color: red;
            margin-bottom: 20px;
        }
        .box2{
              300px;
            height: 220px;
            background-color: red;
            margin-top: 50px;
        }

    </style>

</head>
<body>
    <div class="box1">我是一个盒子</div>
    <div class='box2'>我是第二个盒子</div>
</body>
塌陷

解决办法:  给两个盒子设置浮动

父子盒子margin的坑:

       .father{
             300px;
            height:300px ;
            background-color: blue;
        }
        .child{
             100px;
            height: 100px;
            background-color: red;
            margin-left: 50px;
            margin-top: 50px;

        }


    </style>

</head>
<body>
    <div class="father">
        <div class="child">我是一个盒子</div>
    </div>
</body>
margin坑

解决办法:善用父亲的padding 让子盒子挤下来 而不是margin

display:显示模式

1一旦给一个块级元素比如div设置:

display:inline;

那么,这个标签将立即变为行内元素,此时他和一个span无异,inline就是行内.也就是说:

此时这个div不能设置宽度.高度 此时这个div也可以和别人并排了

2行内元素转为块级元素:

同样道理,一旦给一个行内元素比如span设置:

display: block;

那么这个标签将立即变为块级元素,和div无异,block就是 块的意思,也就是说

此时这个span能够设置宽度高度    此时这个span必须霸占一行,比人无法和他并排了    如果不设置宽高 将撑满父亲

浮动:float

float 有三个值 none:表示不浮动 默认       left :表示左浮动  right :表示右浮动

四大特性:

1浮动的元素脱标 :设置浮动以后,元素就飘起来了 会出现多层渲染的效果 所有标签一旦设置浮动,就能够并排,并且不区分行内 块级元素 都能够设置宽高

        .box1{
             200px;
            height: 200px;
            background-color: red;
            float: left;
        
        }
        .box2{
             400px;
            height: 400px;
            background-color: yellow;
        
        }
        span{
            background-color: green;
            float: left;
             300px;
            height: 50px;
        }


  <div class="box1">小红</div>
     <div class="box2">小黄</div>
     <span>小马哥</span>
     <span>小马哥</span>






红盒子压住黄盒子 行内标签span可以设置宽高
多层渲染

2浮动的元素互相贴靠 像行级元素一样互相贴靠

3浮动的元素有"字维"效果 所谓的字围效果就是 当div浮动,p不浮动,div遮住了p,div的层级提高,但是p中的文字不会被覆盖而是在div周围显示

4有收缩的效果  所谓收缩就是一个浮动元素没有设置宽,自动收缩为文字的宽度

有浮动就一定要有清除浮动

清除浮动:

浮动元素能实现页面元素并排的效果,但是因为浮动元素不会填充父亲的高度,而父亲有没有设置高度所以容易产生页面错乱的情况.

四种方法清除浮动:

1,给父盒子设置高度:它的使用不灵活,一般会常用页面中固定高度的,并且子元素并排显示的布局。比如:导航栏

2clear:both:

clear:意思就是清除的意思。

有三个值:

left:当前元素左边不允许有浮动元素

right:当前元素右边不允许有浮动元素

both:当前元素左右两边不允许有浮动元素

给浮动元素的后面加一个空的div,并且该元素不浮动,然后设置clear:both。

       *{
            padding: 0;
            margin: 0;
        }
        ul{
            list-style: none;
        
        }


        div{
             400px;
        
        }
        

        div ul li {
            float: left;
             100px;
            height: 40px;
            background-color: red;
        }
        .box{
             200px;
            height: 100px;
            background-color: yellow;
        }
        .clear{
            clear: both;
        }

<div>
        <ul>
            <li>Python</li>
            <li>web</li>
            <li>linux</li>
            <!-- 给浮动元素最后面加一个空的div 并且该元素不浮动 ,然后设置clear:both  清除别人对我的浮动影响-->
            <!-- 内墙法 -->
            <!-- 无缘无故加了div元素  结构冗余 -->
            <div class="clear"></div>
            
        </ul>
        
</div>
<div class="box">
        
</div> 
clear:both;

3伪元素清除法:给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置

.clearfix:after{
    /*必须要写这三句话*/
    content: '.';
    clear: both;
    display: block;
}

4overflow:hidden   

overflow属性规定当内容溢出元素框时发生的事情。

说明:

这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

原文地址:https://www.cnblogs.com/lingcai/p/9677751.html