第二阶段(day02)css

1.介绍

层叠样式表,对页面元素修饰。

2.引入Css

语法一:用style标签,先找元素(用div选择器),再做修饰----------调试代码时使用

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <!--语法一:用style标签,先找元素,用div选择器,再做修饰-->
        <style>
            div{
                color: red;     <!--将我的文本颜色变为红色-->
            }
        </style>
    </head>
    <body>
        <div>我的文本</div>
    </body>
</html>

语法二:建立css为后缀的文件,编写相关语法,再用link标签引入该文件---------上线前使用

先建

div{
    color: red;
}

再引

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        
        <!--rel属性引入样式表,href属性引入css文件路径-->
        <link rel="stylesheet" href="css/mystyle.css">
    </head>
    
    <body>
        <div>我的文本</div>
    </body>
</html>

注:当前页面需要引入css文件时,也会有网络请求发出去。

语法三:在元素上使用通用属性--------不建议大量使用(页面一般较长)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
         <!--通用属性:所有元素上都可以用的属性。常见的:id,style(样式)-->
        <div style="color: red;">我的文本</div>
    </body>
</html>

若三种一起使用,加载顺序:html解析是从上到下,后加载的覆盖先加载的。(不建议一起使用)

style属性会覆盖其它引入方式。

3.Css语法结构

Css语法结构:

选择器{

样式1:值;

样式2:值;

……

}

Css语法主要分两部分

l 选择器

l 样式属性

3.1Css常用的选择器

选择器---------找特征用的。没特征就用元素的层次结构或者属性加特征。

3.1.1基本选择器

1.元素(标签)选择器,修饰哪个标签的内容就用哪个标签,再大括号。弊端:选取的范围大,通过标签名选择,所有的标签都会被选中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            
            div{
                color: blue;
            }
            
            p{
                color:red;
            }
        
        </style>
    </head>
    <body>
        <div>测试文本</div>
        <p>测试文本</p>
        <div>测试文本二</div>
    </body>
</html>
​

2.class选择器,修饰有class属性(属性值随便给)的文本。选取比较精准

class也是通用属性。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            
            .mycls{           
                color: red;
            }
            .mycls2{
                color:green;
            }
        </style>
    </head>
    <body>
        <h1>咏鹅--骆宾王</h1>
        <p class="mycls">鹅鹅鹅</p>
        <p class="mycls2">曲项向天歌</p>
        <p class="mycls">白毛浮绿水</p>
        <p class="mycls2">红掌拨清波</p>
    </body>
</html>

3.id选择器,类似class选择器,通过元素id值选取元素。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #mytitle{
                color:brown;
            }
        </style>
    </head>
    <body>
        <h1 id="mytitle">咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p >白毛浮绿水</p>
        <p >红掌拨清波</p>
    </body>
</html>

id和class都是通用属性,id一般给加属性时用的。故,在样式上,class用的更多。且class属性允许多值

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
          .mycls{
              color:red;
          }
          
          .cls2{
              background-color:lightcoral;   <!--加背景颜色-->
          }
          
          .cls3{
              border:1px solid black;        <!--加边框,设置边框粗细和颜色-->
          }
        </style>
    </head>
    <body>
        <h1 >咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
    </body>
</html>

注:选择器优先级(有时也叫权值),对同样的内容进行修饰,id(权值100,该权值适用于ie浏览器)>class(权值10)>标签选择器(权值1)(与加载顺序无关)

注:css里不建议使用id选择器。

3.1.2.辅助性选择器

1.并集选择器,可选择多个元素,也可选择元素和其它选择器

语法:选择器,选择器,选择器,同时选取多种元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
        
        .mycls,h1{
            color:red;
        }
        
        p,h1{
            color:red;
        }
        
        </style>
    </head>
    <body>
        <h1 >咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
    </body>
</html>

2.交集选择器,通过多个条件来确定到一个元素

语法:选择器选择器(之间没任何标点符号和空格),通过多条件选取元素。(一般先写标签名,再加其它样式)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
    
            p.mycls{
                color:green;
            }
        </style>
    </head>
    <body>
        <h1 class="mycls>咏鹅--骆宾王</h1>
        <p class="mycls cls2 cls3">鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p  class="mycls cls3">白毛浮绿水</p>
        <p >红掌拨清波</p>
    </body>
</html>
​

3.后代选择器,通过元素的嵌套关系 ,层次结构查找并修饰元素。

先找父元素,找子元素加一个空格。空格就是后代选择器。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
     
           div p{           
               color:red;
           }
           
           .mytest p{
               color:red;
           }
        </style>
    </head>
    <body>
        <h1 >咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <!--div是两个p的父元素,可用标签组合,也可用样式组合-->
        <div class="mytest">
           <p >白毛浮绿水</p>
           <p >红掌拨清波</p>
        </div>
    </body>
</html>

弊端:也是范围太大

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
           .mytest p{
               color:red;
           }
        </style>
    </head>
    <body>
        <!--只要是包含在属性值mytest里的p都会被选中-->
        <h1 >咏鹅--骆宾王</h1>
        <div class="mytest">
          <p >鹅鹅鹅</p>
          <p >曲项向天歌</p>
             <div>
               <p >白毛浮绿水</p>
               <p >红掌拨清波</p>
             </div>
        </div>
    </body>
</html>
​

4.子代选择器

符号是>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
           .mytest>p{
               color:red;
           }
           .mytest>div>p{
               color:green;
           }
        </style>
    </head>
    <body>
        <!--子代选择器更精准一些,可修饰子代元素,也可修饰孙元素-->
        <h1 >咏鹅--骆宾王</h1>
        <div class="mytest">
          <p >鹅鹅鹅</p>
          <p >曲项向天歌</p>
             <div>
               <p >白毛浮绿水</p>
               <p >红掌拨清波</p>
             </div>
        </div>
    </body>
</html>

3.1.3属性选择器

通过元素的属性选取元素。一般和交集选择器搭配使用,确定选举元素的范围。

语法:[属性=属性值] (可不加属性值,不推荐)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
          
          input[type="button"]{    <!--和交集选择器搭配使用-->
              color:red;
          }
        </style>
    </head>
    <body>
        
        <input type="button" value="按钮" />
        <input type="text" value="文本框" />
        <input type="button" value="按钮" />
    </body>
</html>

3.1.4通用(全局)选择器

语法:*代表所有元素 弊端:可轻易被其它选择器覆盖

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
          
         *{
             color:red;
         }
        </style>
    </head>
    <body>
        <h1 >咏鹅--骆宾王</h1>
        <p >鹅鹅鹅</p>
        <p >曲项向天歌</p>
        <p >白毛浮绿水</p>
        <p >红掌拨清波</p>
    </body>
</html> 
​

3.2Css常用样式属性

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*
        color  文字颜色   颜色值的部分,除了英文字母。还可用#0000FF形式(三色编码,每两位代表红绿蓝的一种,
        FF是一个十六进制数字等于十进制中的255,也就是把一种颜色分成256层从0到255深浅不同,
        你知道红绿蓝的不同可以成组合很多颜色,纯红用FF0000,纯绿用00FF00,你那个是纯蓝,000000是黑色,FFFFFF是白色。)
        程序员计算器,dec十进制,hex十六进制,oct八进制,bin二进制。
        一般用到两个工具,抓色工具,web安全色(让人看起来视觉效果比较柔和的颜色)。程序员颜色尽量选浅色系。
        #5BD和#55BBDD完全一样(两个值数值相同可只写一个)。
        
        font-size调字体大小xx-large超大号。用数值更精确50px,会被自动转换为3.125rem。(px像素  rem相对默认字体的大小
        ,3.125rem即相对原始字号的3.125倍)  像素,在屏幕的分辨率里,1920x1080,表示横向最多有1920个像素,纵向最多有1080
        个像素。也叫1080p,再往上还有2k,4k。可将像素往小了调,相当于放大,用多个像素点显示一个东西,但不能往大调,一个像素
        点再拆成三个,四个是做不到的。分辨率的上限由显示设备决定。   一个300x100像素的图片,若分辨率小了,图片更大。
        一般手机的分辨率不会写的太清楚,因为手机分辨率太乱,电脑上常用的是16:9,笔记本上是16:10.
        现在给字体大小调成50个像素,意思是横向50个点,纵向50个点显示文字。
        
        font-family字体类型,windos系统可安装字体,只是在本机的安装,其它电脑不装,无法显示。在网页里主要用的黑体。
        
        text-align,文字对齐方式(默认左对齐).left,center,right.左中右
        
        vertical-align:middle,图片和文字排在一行(默认底部对齐)。middle居中对齐,top顶部对齐,bottom底部对齐。
        
        div块状效果,可设置块状的大小,可加边框,可让块内文字居中。  让其左右居中text-align:center;      
        让行高和块高相同(即让其上下居中,实际调的文字上下间距)。    border边框,值是复合值,允许填多个值,中间用空格
        隔开。通常设置边框粗细(1px),线条(实线solid 虚线dashed),边框颜色(black)。也可不用复合使用,一个个分开写,
        border-1px这样分开写。  边框圆角border-radius:10px;可让边框变得更柔和,也可用%,border-radius:10%;比例最多到
        50%,此时为圆圈
        
        text-decoration,文字修饰,underline下划线,line-through删除线,最常用的是none(给A标签用的,超链接一般带下划线可让下划线消失。 background-color:背景色
        background背景图片,背景图片和背景颜色有冲突,一般用了背景图片,背景颜色看不着了。
        背景图片如果很小,会默认横纵,纵轴自己循环。background-repeat可设置重复方式,repeat-x只重复x轴,repeat-y只重复y轴
        no-repeat不重复
        
        list-style可修改无序列表的样式,默认黑点。正方形点square,也可用图片做样式。
        
        */
        p{
            color:#0000FF; 
            text-align:center;
        }
        
        .mycls{
            /* font-size:xx-large; */
            font-size:50px;
            font-family:"楷体";
        }
        
        .myimg{
            /* vertical-align:middle; */
             vertical-align:top;
            /* vertical-align:bottom; */
        }
        
        .mydiv{
            width:200px;
            height:200px;
            border:1px solid black;
            border-radius:50%;
            text-align:center;
            line-height:200px;
            /* text-decoration:underline; */
            background-color:#FFB6C1;
            background:url(img/jdk1.7.jpeg) ;
            background-repeat:repeat-y;
        }
        
        .mydiv>a{
            text-decoration:none;
        }
        
        ul{
            list-style:square;
        }
        </style>
    </head>
    <body>
        
        <h1>悯农--李绅</h1>
        <p>锄禾日当午</p>
        <p>汗滴禾下土</p>
        <p class="mycls">谁知盘中餐</p>
        <p>粒粒皆辛苦</p>
        <div class="mydiv">
             <a href="xxx">超链接</a>我的文本</div>
        <!-- 测试文字<img class="myimg" src="img/jdk1.7.jpeg"> -->
        
        <ul>
            <li>项目1</li>
            <li>项目2</li>
            <li>项目3</li>
        </ul>   
    </body>
</html>

课堂案例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
            .mytable{
                border:1px solid black;
            }
            .tabletitle>th{
                border:1px solid gray;
                background-color:lightcoral;
            }
            tbody td{
                border:1px solid gray; 
                width:200px;
                height:60px;
                text-align:center;
            }
        
        </style>
    </head>
    <body>
        <table class="mytable">
            <caption>用户信息表</caption>
            <thead>
                <tr class="tabletitle">
                    <th>姓名</th>
                    <th>性别</th>
                    <th>年龄</th>
                </tr>   
            </thead>
            
            <tbody>
                <tr>
                    <td>小白1</td>
                    <td>女</td>
                    <td>15</td>
                </tr>
                <tr>
                    <td>小白2</td>
                    <td>女</td>
                    <td>15 </td>
                </tr>
                <tr>
                    <td>小白3</td>
                    <td>女</td>
                    <td>15 </td>
                </tr>
                
        </table>
    </body>
</html>

3.3 display属性

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            /* 
            display显示方式,常用的值:inline行内   block块   inline-block行内块(还是从左到右排列,但可设置宽高)
            none看不见(元素还是存在的),效果等同于opacity:0;(透明度为0)(透明度的取值在0到1之间)
            
            显示颜色一般用rgb,对于rgba就是把透明度也加进去
            */
        
            /* div,span{
                border:1px solid black;
                width:100px;
                height:100px;
            }
            /* 设置宽高对行内元素无效*/ 
            
             div{
                border:1px solid black;
                width:100px;
                height:100px;
                display:inline;      /*将块元素改成行内元素*/
                opacity:0.2;
                }  
            
            span{
                border:1px solid black;
                width:100px;
                height:100px;
                display:none;      
                }
                
        </style>
    </head>
    <body>
        <div>mydiv</div>    
        <div>mydiv</div>
        <div>mydiv</div>    
        <span>myspan</span>
        <span>myspan</span>
        <span>myspan</span>
    </body>
</html>
​

3.4盒子模型相关属性

若将每个元素想象成盒子,整个页面布局就是盒子套盒子。

最上层的元素是html,再套body,再套自己的内容

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*
          盒子模型相关的属性: 1.content 内容,一般通过宽高设置  
                             2.border  边框  1px solid black;
                             3.padding,内部填充,边框与内容之间的距离
                             4. margin外边距,用法同padding,两个值时多了auto属性值
          以上四个元素都占单独的大小。有一个值发生改变,整体布局就会改变。                  
         */
             .main{
                 width:400px;
                 height:400px;
                 border:1px solid black;
                 margin:0px auto;
             }
        
             .innerdiv{     
                width:100px;
                height:100px;
                border:10px solid black;
                /* padding:10px;  边框与框内内容上下左右的距离*/
                /* padding-left:50px; 边框与左边内容的距离*/
                /* padding:10px 20px;  边框与上下10px,与左右20px */
                /* padding:10px 20px 30px; 上,左右,下 */
                padding:10px 20px 30px 40px;  /*上,右,下,左(按表走的方向)*/ 
             }
             
             .mydiv{
                /* margin:10px; */
                /* margin-top:20px; 上边距 */
                /* margin-left:20px;  左边距*/
                /* margin:10px 20px 30px 40px;   上右下左 */
                margin:10px 20px;   /*上下和左右*/
                margin:10px auto;   /*auto可以让元素在父元素里左右居中*/
             }
        
        </style>
    </head>
    <body>
        <div class="main">
            <div class="innerdiv">div1</div>
            <div class="innerdiv mydiv">div2</div>
            <div class="innerdiv">div3</div>
        </div>
    </body>
</html>
​

块嵌套:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
        
        /*overflow,溢出。大块里套小块,小块太多会超过外边界,超过的部分让其不显示,用hidden。     超过部分用滚动轴显示,
        用scroll 
        
        另一种情况:父元素里面的每一个块会把其所在行占满,故虽然块右边是空白,但不会再放内容。(块元素是从上到下排列的若让块元素水平排列,用float,属性值有left,right
        float也可让某个元素分成左右各一个
        注:漂浮时要让所有的块都漂浮起来,若加入不漂浮的块,边界就会按不漂浮的块重新来算,且与不漂浮的块一起排列时效果也不好
        
        若大块里套小块,小块里再套小块,就一层一层去排列,解决完一层再解决一层。 
        */
             .main{
                 width:400px;
                 height:400px;
                 border:1px solid black;
                 margin:0px auto;
                 overflow:scroll;
             }
        
             .innerdiv{     
                width:100px;
                height:100px;
                border:1px solid black;
                float:left;
             }
             
             .toRight{
                 float:right;
             }
        
        </style>
    </head>
    <body>
         <div class="main">
            <div class="innerdiv">div1</div>
            <div class="innerdiv">div2</div>
            <div class="innerdiv">div3</div>
            <div class="innerdiv">div4</div>
            <div class="innerdiv">div5</div>
         </div>
         <div>
             xxx系统    <span class="toRight">欢迎你xxx
             
         </div>
    </body>
</html>

课堂案例1:

(打地鼠,上面大块里套了5x5个小块,要求大块居中。下面块有三行内容,要求居中)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
           <style>
               .mainPanel{               /*设置大块样式*/
                   width:500px;
                   height:500px;
                   border:1px solid black;  
                   margin:0px auto;     /* 大块左右居中*/
               }
               
               .mainPanel>.innerdiv{    /* 设置小块样式,先给个差不多的值,然后用开发者工具调(不是真的调好,预览)。
                将调好的值赋给下面的属性。美工也是这样做的,并非笔算     */
                   width:78px;         
                   height:78px;
                   border:1px solid black;
                   float:left;         /* 让小块水平排列 */
                   margin:10px;        /* 块间间隔 */
               }
               
               .countPanel{            /* 设置下面块的样式 ,先给个值,再用开发者工具调,再赋值*/
                   width:280px;
                   height:175px;
                   border:1px solid black;  
                   margin:30px auto;   /* 上下间距30px,左右居中 */
               }
               
                .countPanel>p{        /* 设置块中文字样式 */
                    text-align:center;      /* 按钮是行元素,text-align实际就是调行元素 */
                }
           </style> 
    </head>
    <body>
        
        <div class="mainPanel">                <!-- 创建大块元素并嵌套25个小块 -->
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            <div class="innerdiv"></div>
            
        </div>
        
        <div class="countPanel">
            <p>计时:0秒</p>             <!-- 用段落,不用换行 -->
            <p>计分:0分</p>
            <p><input type="button" value="开始"><input type="button" value="结束"></p>
        </div>
    </body>
</html>
​

课堂案例2:

frameset或者frame形式已被淘汰,用div+css布局替代(建一堆块,然后排成想要的布局)。

上左右布局:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
            <style> 
                /*.main{                     要布局的区域,在这上面划分上左右三块区域,一般先上下,再左右 
                    width:800px;
                    height:600px;
                    background-color:lightseagreen;
                }
                 .top{
                    width:800px;          上面部分的宽度要和布局区域一致 
                    height:200px;
                    background-color:#F08080;
                }
                .bottom{
                    width:800px;        
                    height:400px;
                    background-color:#F08080;
                }
                .left{                       下面部分的左面部分 
                    width:200px;       
                    height:400px;
                    background-color:#ADD8E6;
                    float:left;             要让左右两部分在下面部分水平排列,就都得加浮动属性 
                }
                .right{
                    width:600px;
                    height:400px;
                    background-color:lightcoral;
                    float:right;
                } 
                
                 用像素还需要计算,比较麻烦,故可用百分比。 */
                 
                 /* 下面是整个页面填满的布局 */
                 html,body{               /* 可当成习惯的写法 */
                     height:100%;
                     width:100%;         /* 宽度可不指定,默认100% */
                     margin:0px;         /* body自带样式,margin:8px;需覆盖掉 */
                     padding:0px;        /* 为了严谨加的,实际和width一样,没什么用 */
                 }
                 .main{                          /* 将整个页面布满 */
                    width:100%; 
                    height:100%;                       /* css中高度想用100%,要求父元素高度指定,否则默认为0,解决
                     方式,从html开始 指定高度,body指定高度,到div里再继承100%*/
                    background-color:lightseagreen;
                    }
                .top{
                    width:100%;          
                    height:25%;
                    background-color:lightblue;
                    }
                .bottom{
                    width:100%;        
                    height:75%;
                    background-color:lightcyan;
                }
                .left{                      
                    width:20%;       
                    height:100%;
                    background-color:black;
                    float:left;            
                }
                .right{
                    width:80%;
                    height:100%;
                    background-color:lightpink; 
                    float:right;
                } 
            
            </style>
    </head>
    <body>
        <div class="main">
            <div class="top"></div>
            <div class="bottom">
                <div class="left"></div>
                <div class="right"></div>
            </div>
        </div>
    </body>
</html>
​

3.5伪类选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*伪类选择器,用于选取元素的状态,比较常见的两个状态:hover鼠标悬停,active鼠标点击(点击但没松开)
        只要是页面里能看到的元素都有状态,都可以修改
        */
        
            a:hover{        /* 悬浮状态 */
                color:lightcoral;        /* 修改文字颜色 */
                font-size:x-large;       /* 修改文字大小 */
            }
            a:active{       /* 点击效果 */
                color:purple;
            }
            .mydiv{
                width:100px;
                height:100px;
                border:1px solid black;
                background-color:lightgreen;
            }
            .mydiv:hover{
                background-color:lightblue;
                cursor:pointer;       /* 鼠标变成手也是样式效果 */
            }
            .mydiv:active{
                background-color:olive;
            }
            
        </style>
    </head>
    <body>
        <a href="xxx">超链接</a>     <!-- 超链接元素实际是一个特殊元素,效果:鼠标放上去会变成手,点击不放开会变色。css里的两个
        定义效果,鼠标放上去叫悬浮状态,点击下去叫活动状态。这两个状态也可以选择并修改。 -->
        
        <div class="mydiv"></div>      <!--对于div鼠标点击没什么效果,也可以添加效果 -->
    </body>
</html>
​

3.6特殊的样式属性--position,定位属性

可改变之前的排布规则(块元素默认从上到下排列,加浮动后默认从左到右排列。行内元素从左到右排列。)。

之前的排布规则称为static:默认文档流。页面布局使用特性把块移动到想要去的位置。一般使用外边距,填充等达到想要的效果。

若改变元素的position属性,会让默认文档流发生改变,即使修饰的元素不再遵从于默认文档流规则。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
        /*position属性默认static。其它属性值:1.relative相对定位,以原来所在位置为原点,进行偏移。使用了属性值后,
        通常还要使用另外两个属性,top(向下偏移)和left(向右偏移)来进行偏移。偏移量也可使用负值(故没有right和bottom)。
        元素未脱离文档流(其它元素不动,且位置改变的元素也是以原来位置为参照)。
        2.absolute绝对定位,元素脱离文档流(其它元素视位置改变的元素不存在,按照默认文档流排列。位置改变的元素以整个窗口的
        页面位置为基准进行偏移。实际上,不在同一个图层了)
        3.固定定位,元素脱离文档流,也是以窗口位置进行偏移,并固定在此处(拉滚动条也不动,不随页面移动而移动)
        
        加了定位属性的块悬浮于其他块之上.实际上,样式表有分图层,z-index可改变图层顺序。默认图层为0,加了定位属性后,改变
        位置的元素所在图层变为1,故可覆盖原先元素。可给z-index一个-1的值,使改变位置的元素在原来元素的下面。
        注:z-index只能用在有定位属性的元素上。
        */
           .div1{
               width:100px;
               height:100px;
               border:1px solid black;
               background-color:lightblue;
           }
          /* .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:relative;  
                       top:50px;
                       left:-50px;                   
           } */
           /* .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:absolute;  
                       top:50px;
                       left:50px;                    
           } */
           .div2{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightcoral;
                       position:fixed;  
                       top:50px;
                       left:50px;   
                       z-index:-1;                  
           }
           .div3{
                       width:100px;
                       height:100px;
                       border:1px solid black;
                       background-color:lightgreen;
           }
        
        </style>
    </head>
    <body>
        <div class="div1">div1</div>
        <div class="div2">div2</div>
        <div class="div3">div3</div>
    </body>
</html>
​

4.作业之导航条

行业内一般用标签ul和li去做。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style> 
           /* ul和li都是块元素,想水平排列,可用:1.悬浮 */
          /* .mynav>li{
               float:left;
               border:1px solid black;
               margin-left:20px;      加外边距 
               width:80px;
               height:50px;
               text-align:center;
               line-height:50px;
           }
           .mynav{
               list-style:none;     去无序列表标题 
           }
           .mynav>li>a{
               text-decoration:none;    去a标签下划线 
               color:lightcoral;
           }
           .mynav>li:hover{
               background-color:lightgreen;
           } */
           
           /* 水平排列方法二:将块元素变成行元素,用display */
           .mynav>li{
               display:inline-block;    /* 改成行内块 */
               border:1px solid black;
               margin-left:20px;       
               width:80px;
               height:50px;
           }
        
        </style>
    </head>
    <body>
        <ul class="mynav">
            <li><a href="xxx"> 首页 </a></li>
            <li><a href="xxx"> 关于惠达 </a></li>
            <li><a href="xxx"> 卫浴产品 </a></li>
            <li><a href="xxx"> 工程案例 </a></li>
        </ul>
    </body>
</html>


思维导图如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值