• 前端_CSS


    CSS概述

    • CSS 指层叠样式表 (Cascading Style Sheets)
    • 样式定义如何显示 HTML 元素
    • 样式通常存储在样式表中
    • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
    • 外部样式表通常存储在 CSS 文件中

    CSS注意事项

    CSS语法

    CSS 描述由两个主要的部分构成:选择器,以及一条或多条声明。

    • 选择器通常是您需要改变样式的 HTML 元素。
    • 每条声明由一个属性和一个值组成。
    • 属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值,属性和值被冒号分开。
    • 使用花括号来包围声明。
    • 如果值为若干单词,则要给值加引号:   p {font-family: "sans serif";}
    • 如果要定义不止一个声明,则需要用分号将每个声明分开。
    • 在每行只描述一个属性,这样可以增强样式定义的可读性。
    • 是否包含空格不会影响 CSS 在浏览器的工作效果,CSS 对大小写不敏感。如果涉及到与 HTML 文档一起工作的话,class 和 id 名称对大小写是敏感的。

    实例:

    1 /* h1 是选择器,color 和 font-size 是属性,red 和 14px 是值。 */
    2 
    3 h1 {color:red; font-size:14px;}

    CSS注释

    /*这是注释*/

    CSS标签属性设置

    内联样式:在标签上设置style属性

    <p style="color: red">Hello world.</p>

    嵌入样式:将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            p{
                background-color: #2b99ff;
            }
        </style>
    </head>

    外部样式:将css写在一个单独的文件中,然后在页面进行引入即可

    <link rel="stylesheet" href="css/commons.css"  type="text/css" />

    CSS选择器

    id选择器

    • 可以为标有特定 id 的 HTML 元素指定特定的样式;
    • 以 "#" 来定义。
    • id 属性只能在每个 HTML 文档中出现一次
    <style>
        #red {color:red;}
        #green {color:green;}
    </style>
    
    <body>
    <!-- id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。-->
        <p id="red">这个段落是红色。</p>
        <p id="green">这个段落是绿色。</p>
    <body />

    id选择器和派生选择器

    #sidebar p {
        font-style: italic;
        text-align: right;
        margin-top: 0.5em;
        }
    
    #sidebar h2 {
        font-size: 1em;
        font-weight: normal;
        font-style: italic;
        margin: 0;
        line-height: 1.5;
        text-align: right;
        }
    一个选择器,多种用法

    注:在这里,与页面中的其他 p 元素明显不同的是,sidebar 内的 p 元素得到了特殊的处理,同时,与页面中其他所有 h2 元素明显不同的是,sidebar 中的 h2 元素也得到了不同的特殊处理。

    类选择器

    • 以一个点号显示
    • 类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。
    .center {text-align: center}
    
    
    <h1 class="center">
    This heading will be center-aligned
    </h1>
    
    <p class="center">
    This paragraph will also be center-aligned.
    </p>

    标签选择器

    div{
    ...
    }
    
    所有div设置上此样式

    层级选择器:用空格隔开,表示c1标签下的c2标签下的div标签属性设置

    .c1 .c2 div{
    
    }

    子代选择器

    <!-- 只作用于test1 -->
    
    .wrap>a{
    
    }
    
    <div class="wrap">
       <p>
          <a href='#'>test</a>
      </p>
       <a href='#'>test1</a>
    </div>
    <div>
         <a href='#'>test2</a>
    <div>

    组合选择器:用逗号隔开,表示c1标签,c2标签,div标签都设置该属性

    #c1,.c2,div{
    
    }

    属性选择器: 对选择到的标签再通过属性再进行一次筛选

    <style>
        .c1[n='al']{ width:100px; height:200px; }
            
         /*用于选取带有指定属性的元素。*/
        p[title] {
                    color: red;
            }
        /*用于选取带有指定属性和值的元素。*/
       p[title="213"] {
                 color: green;
            }
        
    </style>
    
    <body>
        <input class="c1" type="text" n="abc">
        <input class="c1" type="password">
    </body>   

    伪类选择器

    /* 未访问的链接 */
    a:link {
      color: #FF0000
    }
    
    /* 已访问的链接 */
    a:visited {
      color: #00FF00
    } 
    
    /* 鼠标移动到链接上 */
    a:hover {
      color: #FF00FF
    } 
    
    /* 选定的链接 */ 
    a:active {
      color: #0000FF
    }
    
    /*input输入框获取焦点时样式*/
    input:focus {
      outline: none;
      background-color: #eee;
    }

    CSS选择器优先级

    • 标签上style优先,编写顺序,就近原则
    • 选择器权重:内联选择器(1000)、id选择器(100)、类选择器(10)、标签选择器(1)
    • 数标签的数量 权重大的属性生效;继承来的属性,权重很低近乎为0
    p { color: gray}             /* 001 *
    div div p { color; green}   /* 003 */
    .active { color:red}         /* 010 */
    div .acrive{ color:black}   /*011*/
    .wrap1 #box2 .active{ }     /*120*/
    • 可以通过添加 !important方式来强制让样式生效,但并不推荐使用。因为如果过多的使用!important会使样式文件混乱不易维护。
    * 样式后面加  !important  强调,优先级最高   *
    <style>
        .no-radus{
             border-radius: 0 !important;}
    </style>

    CSS常用属性

    background属性

    background属性:设置背景图片,可以为所有元素设置背景色,这包括 body 一直到 em 和 a 等行内元素。

    • background-image:  url('image/4.gif');   # 默认,如果div大,则图片重复放置;
    • background-color: red;
    • background-repeat:      repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复,no-repeat 则不允许图像在任何方向上平铺。默认地,背景图像将从一个元素的左上角开始。
    • background-position:改变图像在背景中的位置;
    • background-size:      背景图片大小缩放
    body{ 
          background-image: url(/i/eg_bg_03.gif);
          background-repeat: repeat-y; }
    
    /*背景位置*/
    background-position: right top;
    background-position: 200px 100px;
    
    /* 点赞应用实例 */
    background-position-x: 调节水平方向边距
    background-position-y: 调节垂直方向边距

    实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #p1 {background-color: gray;}
            #p2 {background-color: gray; padding: 20px;}
            body {background-image: url(baidu.png);}
            body {background-image: url(baidu.png);
                  /* background-repeat: repeat-y; */
                  /* background-repeat: repeat-x; */
                  background-repeat:no-repeat;
                  background-position:center;}
            #div2 {
                    height: 20px;
                    width:20px;
                    border: 1px solid red;
                    background-image: url(icon_18_118.png);
                    background-repeat:no-repeat;
                    background-position-y:-40px
            }
        </style>
    </head>
    <body>
        <div>
            <p id="p1">可以使用 background-color 属性为元素设置背景色</p>
            <p id="p2">可以使用 background-color 属性为元素设置背景色</p>
            <br /> <br /> <br /> <br />  <br />  <br />
            <div id="div2"></div>
        </div>
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #p1 {background-color: gray;}
            #p2 {background-color: gray; padding: 20px;}
            body {background-image: url(baidu.png);}
            body {background-image: url(baidu.png);
                  /* background-repeat: repeat-y; */
                  /* background-repeat: repeat-x; */
                  background-repeat:no-repeat;
                  background-position:center;}
            #div2 {
                    height: 20px;
                    width:20px;
                    border: 1px solid red;
                    background-image: url(icon_18_118.png);
                    background-repeat:no-repeat;
                    background-position-y:-40px
            }
        </style>
    </head>
    <body>
        <div>
            <p id="p1">可以使用 background-color 属性为元素设置背景色</p>
            <p id="p2">可以使用 background-color 属性为元素设置背景色</p>
            <br /> <br /> <br /> <br />  <br />  <br />
            <div id="div2"></div>
        </div>
    </body>
    </html>
    background实例

    文本属性

    text-indent:实现文本缩进。

    /* 通过使用 text-indent 属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。 */
    
    p {text-indent: 5em;}
    
    /* 一般来说,可以为所有块级元素应用 text-indent,但无法将该属性应用于行内元素,图像之类的替换元素上也无法应用 text-indent 属性。 */
    /* 如果想把一个行内元素的第一行“缩进”,可以用左内边距或外边距创造这种效果。 */

    text-align:center: 元素中的文本行互相之间的对齐方式。

    left:  左对齐
    right: 右对齐
    center: 水平居中
    justify:两端对齐

    line-height:npx 根据标签高度居中,建议使用em;px绝对单位;em相对单位,如果字体为15px,2em行高相当于30px;rem应用于移动端。

    letter-spacing: npx 设置文字与文字之间的距离。

    word-spacing: npx   单词与单词之间的距离。

    text-decoration 属性用来给文字添加特殊效果。

    none:         默认。定义标准的文本。
    underline:    定义文本下的一条线。
    overline:     定义文本上的一条线。
    line-through: 定义穿过文本下的一条线。
    inherit:      继承父元素的text-decoration属性的值。

    去掉a标签默认的自划线:

    a {
      text-decoration: none;
    }

    字体属性

    /*  font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。 */
    body {
      font-family: "Serif", "Sans-serif", Monospace, Cursive, Fantasy, "New York"
    }
    
    /* 字体大小:  font-size  */
    p {
      font-size: 14px;
    }
    
    /* 字体粗细: font-weight   */
    normal: 默认值,标准粗细
    bold:   粗体
    bolder: 更粗
    lighter: 更细
    100~900: 设置具体粗细,400等同于normal,而700等同于bold
    inherit: 继承父元素字体的粗细值
     
    /*font-style: italic;  斜体  */ 
    /* 字体颜色:color */ 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如: red 还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。

    其他属性

    /* 块级标签才能设置宽度,内联标签的宽度由内容来决定。 */
    line-height: npx    垂直方向根据标签高度
    height:             高度 百分比
                  宽度 像素,百分比

    行内元素水平垂直居中

    /* 方式1:*/
    
    text-align:center;
    line-height:2em;
    
    /* 方式2:*/
    display:table-cell;
    vertical-align: middle;

    块级元素水平垂直居中

    /* 方式1:position+margin*/
    margin:auto;
    top:0;
    bottom:0;
    left:0;
    right:0;
    
    /* 方式2:父元素设置成单元格调整垂直居中,子元素设置成行内块,调整水平居中*/
    。box{
        display:table-cell;
        vertical-align:middle;
        text-align:center;
    }
    .child{
        display:inline-block;
    }
    
    /* 方式3:position+margin定位*/
    position:absolute;
    top:50%;
    left:50%;
    margin-left:-50px;     /*  通过计算获得*/
    margin:-50px;

    边框阴影

    box-shadow: 2px 1px 50px red inset;  /*阴影水平距离,垂直距离,阴影大小,颜色, 内部填充,默认时outset*/ 

    CSS边框模型


    边框

    边框:围绕元素内容和内边距的一条或多条线。

    border-width: 边框宽度
    border-style: 边框类型
    border-color: 边框颜色
    border-radius: 用这个属性能实现圆角边框的效果。将border-radius设置为长或高的一半即可得到一个圆形。
    
    #i1 {  border-width: 2px;
              border-style: solid;
              border-color: red;   }
    /*等同于  */
    #i1 {  border: 2px solid red;  }
    
    /* 边框类型 */
    none: 无边框。
    dotted:点状虚线边框。 
    dashed: 矩形虚线边框。
    solid:实线边框。  
    
    /*  边框单边设置样式 */
    #i1 {  border-top-style:dotted;
              border-top-color: red;
              border-right-style:solid;
              border-bottom-style:dotted;
              border-left-style:none;   }
    
    border:none    /* 清除默认样式*/
    border: 0      /* 清除默认样式*/ 
    outline:none;  /*清除外线*/

    padding属性

    定义元素边框与元素内容之间的空白区域。

    /* padding 属性接受长度值或百分比值,但不允许使用负值。 */
    h1 {padding: 10px;}
    
    /* 按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值 */
    h1 {padding: 10px 0.25em 2ex 20%;}
    
    /* 通过使用下面四个单独的属性,分别设置上、右、下、左内边距: */
    /* 百分数值是相对于其父元素的 width 计算的 */
    .h1 {
      padding-top: 10px;
      padding-right: 0.25em;
      padding-bottom: 2ex;
      padding-left: 20%;  }
    
    .h1{
      padding: 5px 10px 15px 20px;
    }

    margin属性

    设置外边距会在元素外创建额外的“空白”。

    /* margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。*/
    /* margin 可以设置为 auto。 * /
    h1 {margin : 0.25in;}
    
    /* 顺序是从上外边距 (top) 开始围着元素顺时针旋转的  margin: top right bottom left  */
    h1 {margin : 10px 0px 15px 5px;}
    
    /* 百分数是相对于父元素的 width 计算的 */
    p {margin : 10%;}
    
    /* 使用下列任何一个属性来只设置相应上的外边距,而不会直接影响所有其他外边距: */
    h2 {
      margin-top: 20px;
      margin-right: 30px;
      margin-bottom: 30px;
      margin-left: 20px;
      }
    
    margin: 0 auto  :上下外边距为0,左右为自适应

    display

    /*
    display:"none"    HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。
    display:"block"   默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。 内敛标签转为块标签
    display:"inline"  按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。 块标签转为内联标签
    display:"inline-block"  使元素同时具有行内元素和块级元素的特点。具有inline,默认自己有多少占多少;并且具有block,可以设置无法设置高度,宽度,padding margin
    
    display:"none"与visibility:hidden的区别:
    visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
    display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。
    
    行内标签:无法设置高度,宽度,padding margin
    块级标签:设置高度,宽度,padding margin
    
    */

    position

    /*
    static
    元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
    
    relative
    元素框相对于该元素在文档流中的原始位置偏移某个距离。即以自己原始位置为参照物,元素仍保持其未定位前的形状,它原本所占的空间仍保留。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置
    
    absolute    子元素绝对定位,父元素相对定位
    元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
    参考点:相对于最近的非static祖先元素定位,如果没有非static祖先元素,则以页面根元素左上角进行定位。
    把元素固定在某个位置,但是页面滑动,元素随着页面动。
    
    fixed   
    元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。
    指元素的位置相对于浏览器窗口是固定位置,即使窗口是滚动的它也不会滚动,且fixed定位使元素的位置与文档流无关,因此不占据空间,且它会和其他元素发生重叠。
    
    
    一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。
    */

    实例

    实例:返回顶部,fixed属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            *{margin:0;}
            .scrollTop {
                         width: 80px;
                         height: 30px;
                         background-color: black;
                         color: white;
                         position: fixed;
                         bottom:20px;
                         right: 20px;
                         text-align:center;
                         line-height:30px
            }
        </style>
    </head>
    <body>
        <div onclick="GoTop()" class = 'scrollTop'>返回顶部</div>
        <div style="height: 5000px;background-color: #dddddd;">
            asdfasdf
        </div>
        <script>
            function GoTop(){
                console.log(123)
                document.documentElement.scrollTop = 0;
                console.log(a)
            }
        </script>
    </body>
    </html>

    实例:relative+absolte

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
        <div style="position: relative; 500px;height: 200px;border: 1px solid red;margin: 0 auto;">
            <div style="position: absolute;left:0;bottom:0; 50px;height: 50px;background-color: black;"></div>
        </div>
        <div style="position: relative; 500px;height: 200px;border: 1px solid red;margin: 0 auto;">
    
            <div style="position: absolute;right:0;bottom:0; 50px;height: 50px;background-color: black;"></div>
        </div>
        <div style="position: relative; 500px;height: 200px;border: 1px solid red;margin: 0 auto;">
    
            <div style="position: absolute;right:0;top:0; 50px;height: 50px;background-color: black;"></div>
        </div>
    </body>
    </html>

    float属性

    让标签浮起来,块级标签也可以堆叠

    /*
    浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
    由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
    
    浮动现象:文字环绕,脱离了标准文档流;浮动元素相互贴靠;浮动元素收缩现象,和本身内容一样宽。
    
    清除浮动带来的破坏方式:
    1. 如果一个标签的嵌套的标签都使用了float,那么需要在嵌套的标签下面加上:
    <div style="clear: both;"></div>
    2. 给父标签设定固定的高度;
    3. 伪元素清除法,给父标签设置下面属性:
        .clearfix::after{
               content:'';
               display:block;
               clear:both;
          }
    4. overflow清除浮动,给父标签设置overflow:hidden
      BFC区域一条规则:计算BFC(块级盒子)的高度时,浮动元素也参与计算;
      形成BFC的条件:除了overflow:visitable的属性值
          
    left: 向左浮动
    right:向右浮动
    none:默认值,不浮动
    
    */

    clear

    /* 
    clear 属性规定元素的哪一侧不允许其他浮动元素。
    
    left:      在左侧不允许浮动元素。
    right:      在右侧不允许浮动元素。
    both:    在左右两侧均不允许浮动元素。
    none:  默认值。允许浮动元素出现在两侧。
    inherit:     规定应该从父元素继承 clear 属性的值。
    */

    实例

    实例:float 和clear使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .news {
                background-color: gray;
                border: solid 1px black;
                <!--float: left;-->
                }
            .news img {
                float: left;
                }
            .clear {
                clear: both;
                }
            .news p {
                float: right;
                }
        </style>
    
    </head>
    <body>
        <div class="news " >
            <img src="baidu.png" />
            <p>some text</p>
             <div class="clear"></div>
        </div>
    </body>
    </html>

    overflow

    /*
    visible: 默认值。内容不会被修剪,会呈现在元素框之外。
    hidden:  内容会被修剪,并且其余内容是不可见的。
    scroll:    内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
    auto:         如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
    inherit:  规定应该从父元素继承 overflow 属性的值。
    
    overflow:    水平和垂直均设置
    overflow-x:  设置水平方向
    overflow-y:   设置垂直方向
    */

    z-index

    设置对象的层叠顺序。

    /*
    
    z-index 值表示谁压着谁,数值大的压盖住数值小的,
    
    只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
    
    z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
     
    */
    img {
        position:absolute;
        left:0px;
        top:0px;
        z-index:-1;}

    实例

    实例:模态框

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>自定义模态框</title>
      <style>
        .cover {
          background-color: rgba(0,0,0,0.65);
          position: fixed;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
          z-index: 998;
        }
    
        .modal {
          background-color: white;
          position: fixed;
          width: 600px;
          height: 400px;
          left: 50%;
          top: 50%;
          margin: -200px 0 0 -300px;
          z-index: 1000;
        }
      </style>
    </head>
    <body>
    
    <div class="cover"></div>
    <div class="modal"></div>
    </body>
    </html>

    opacity

    透明度设置:0~1;0是完全透明,1是完全不透明。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <div style="z-index:10; position: fixed;top: 50%;left:50%;
        margin-left: -250px;margin-top: -200px; background-color:white;height: 400px;500px; ">
    
            <input type="text" />
            <input type="text" />
            <input type="text" />
    
        </div>
    
        <div style="display:none;z-index:9; position: fixed;background-color: black;
        top:0;
        bottom: 0;
        right: 0;
        left: 0;
        opacity: 0.5;
        "></div>
    
        <div style="height: 5000px;background-color: green;">
            asdfasdf
        </div>
    </body>
    </html>

    hover

    选择鼠标指针浮动在其上的元素,并设置其样式

    a:hover
    { 
    background-color:yellow;
    }

    链接样式

    /*
    能够设置链接样式的 CSS 属性有很多种(例如 color, font-family, background 等等)
    
    链接的四种状态:
    
    a:link - 普通的、未被访问的链接
    a:visited - 用户已访问的链接
    a:hover - 鼠标指针位于链接的上方
    a:active - 链接被点击的时刻
    
    a:hover 必须位于 a:link 和 a:visited 之后
    a:active 必须位于 a:hover 之后
    
    text-decoration 属性大多用于去掉链接中的下划线:
    */
    
    <style>
        a:link {color:#FF0000;}    /* 未被访问的链接 */
        a:visited {color:#00FF00;} /* 已被访问的链接 */
        a:hover {color:#FF00FF;}   /* 鼠标指针移动到链接上 */
        a:active {color:#0000FF;}  /* 正在被点击的链接 */
    </style>

    CSS对齐

    /*
    对齐块元素:  块元素指的是占据全部可用宽度的元素,并且在其前后都会换行。
    
    margin 属性来水平对齐:把左和右外边距设置为 auto,规定的是均等地分配可用的外边距。
    margin-left:auto;
    margin-right:auto;
    
    position 属性进行左和右对齐:
    position:absolute;
    right:0px;
    
    float 属性来进行左和右对齐:
    float:right;
    */

    实例

    导航栏

    /*
    导航栏基本上是一个链接列表,因此使用 <ul> 和 <li> 元素是非常合适的:
    
    */
    
    /* 从列表中去掉圆点和外边距:  */
    ul{
        list-style-type:none;
        margin:0;
        padding:0;  }

    实例:导航栏

    <!DOCTYPE HTML>
    <html>
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>li标签的float示例</title>
      <style>
        /*清除浏览器默认外边距和内填充*/
        * {
          margin: 0;
          padding: 0;
        }
        a {
          text-decoration: none; /*去除a标签默认的下划线*/
        }
    
        .nav {
          background-color: black;
          height: 40px;
          width: 100%;
          position: fixed;
          top: 0;
        }
    
        ul {
          list-style-type: none; /*删除列表默认的圆点样式*/
          margin: 0; /*删除列表默认的外边距*/
          padding: 0; /*删除列表默认的内填充*/
        }
        /*li元素向左浮动*/
        li {
          float: left;
        }
    
        li > a {
          display: block; /*让链接显示为块级标签*/
          padding: 0 15px; /*设置左右各15像素的填充*/
          color: #b0b0b0; /*设置字体颜色*/
          line-height: 40px; /*设置行高*/
        }
        /*鼠标移上去颜色变白*/
        li > a:hover {
          color: #fff;
        }
    
        /*清除浮动 解决父级塌陷问题*/
        .clearfix:after {
          content: "";
          display: block;
          clear: both;
        }
      </style>
    </head>
    <body>
    <!-- 顶部导航栏 开始 -->
    <div class="nav">
      <ul class="clearfix">
        <li><a href="">玉米商城</a></li>
        <li><a href="">MIUI</a></li>
        <li><a href="">ioT</a></li>
        <li><a href="">云服务</a></li>
        <li><a href="">水滴</a></li>
        <li><a href="">金融</a></li>
        <li><a href="">优品</a></li>
      </ul>
    </div>
    <!-- 顶部导航栏 结束 -->
    </body>
    </html>

    实例:左侧菜单栏

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                margin: 0;
            }
            .left{
                float: left;
            }
            .right{
                float: right;
            }
            .pg-header{
                height: 48px;
                background-color: #2459a2;
                color: white;
            }
            .pg-content .menu{
                position: fixed;
                top: 48px;
                left: 0;
                bottom: 0;
                width: 200px;
                background-color: #dddddd;
            }
            .pg-content .content{
                position: fixed;
                top: 48px;
                right: 0;
                bottom: 0;
                left: 200px;
                background-color: purple;
                overflow: auto;
            }
        </style>
    </head>
    <body>
        <div class="pg-header"></div>
        <div class="pg-content">
            <div class="menu left">a</div>
            <div class="content left">
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
            </div>
        </div>
        <div class="pg-footer"></div>
    </body>
    </html>
    左侧菜单栏

    实例:左侧菜单栏2

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <style>
            body{
                margin: 0;
            }
            .left{
                float: left;
            }
            .right{
                float: right;
            }
            .pg-header{
                height: 48px;
                background-color: #2459a2;
                color: white;
                line-height: 48px;
            }
    
            .pg-content .menu{
                position: absolute;
                top:48px;
                left: 0;
                bottom: 0;
                width: 200px;
                background-color: #dddddd;
            }
    
            .pg-content .content{
                position: absolute;
                top: 48px;
                right: 0;
                bottom: 0;
                left: 200px;
                overflow: auto;
                z-index: 9;
    
            }
        </style>
    </head>
    <body>
    
        <div class="pg-header"></div>
        <div class="pg-content">
            <div class="menu left">a</div>
            <div class="content left">
                <!--<div style="position: fixed;bottom:0;right:0; 50px;height: 50px;">返回顶部</div>-->
                <!--<div style="position: absolute;bottom:0;right:0; 50px;height: 50px;">返回顶部</div>-->
                <div style="background-color: purple">
                <p style="margin: 0;">asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                <p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p><p>asdf</p>
                </div>
            </div>
        </div>
        <div class="pg-footer"></div>
    </body>
    </html>
    View Code

    参考

    http://www.w3school.com.cn/css/css_syntax_attribute_selector.asp

    https://www.cnblogs.com/zhuzhenwei918/p/6112034.html


  • 相关阅读:
    C++ 编写strcpy函数
    JavaScript抽象类及Class.create备忘
    读:<测试一下你解决问题的逻辑思维及算法能力>后
    JavaScript AJAX类
    MOSS ad组的获取及Hashtable作缓存总结
    Js获取元素位置及动态生成元素的练习备忘
    NET许可证及License
    Javascript获取元素位置及其它
    hdu 149850 years, 50 colors 最大匹配
    poj 2513 Colored Sticks 字典树
  • 原文地址:https://www.cnblogs.com/gareth-yu/p/9971886.html
Copyright © 2020-2023  润新知