css语法部分

作者: 2e919d99a871 | 来源:发表于2017-05-22 17:56 被阅读49次

    前言: 看了几天HTML标签和CSS布局,我狭义的认为他们就是iOS里面的视图控件了.而且布局相对于iOS要简单一点,虽然我大iOS有AutoLayout,但是UIScrollView之类的控件写起来还是要相对复杂一点的.各有利弊,以后再边学边比较吧.(以上纯属个人看法)

    • 1 css注释代码

      /*注释部分*/
      
    • 2 内联式css样式,直接写在现有的HTML标签中
      从css样式代码插入的形式来看基本可以分为3种: 内联式,嵌入式和外部式三种.
      内联式: css样式表就是把css代码直接写在现有的HTML标签中.

          <p style="color:blue">这里是蓝色</p>
      

      如果有多条css样式代码设置,可以写在一起,中间分好隔开.

      <p style="color:blue;font-size:18px;font-weight:blod">
      这里是文字
      </p>
      
    • 2 嵌入式css样式,写在当前的文件中

      <style type = "text/css">
      span{
      color: blue;
      font-size: 12px;
      }
      </style>
      
    • 3 外部式css样式,写在一个单独的文件中
      也称外联式,把css代码写在一个单独外部文件中,这个css样式文件以".css"为扩展名.在<head>内(而不是在< style>标签内) 使用<link>标签将css样式文件链接到HTML文件内,代码如下:

      <link href="base.css" rel="stylesheet" type="text/css"/>
      
    • 4 三种样式的优先级
      内联式 > 嵌入式 > 外部式
      但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面.

      <head>
      

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>嵌入式css样式</title>
    <style type="text/css">
    #shijian{
    color:green;
    font-size:5px;
    }
    </style>
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <p>慕课网,<span>超酷的互联网</span >、IT技术免费学习平台,创新的网络一站式学习、<span id = "shijian">实践体验</span>;服务及时贴心,内容专业、有趣易学。专注服务互联网工程师快速成为技术高手!</p>
    </body>

    #shijian{
    color:blue;
    font-size:30px;
    }
    结论: 此时"实践体验"字体是蓝色的,因为嵌入式css样式的位置在外部式的前面了.
    ```

    • 5 类选择器
      语法: .类选择器名称{css样式代码;

      1、英文圆点开头
      2、其中类选器名称可以任意起名(但不要起中文噢)
      使用:
      <span>胆小如鼠</span>
      <span class = "stress">胆小如鼠</span>
      /*设置类选择器css样式,类前面要加一个英文圆点*/
      .stress{
          color:red;
      }
      
    • 6 ID选择器
      为标签设置id = "ID名称"
      ID选择符的前面是"#"

      <style type="text/css">
      #stress{
          color:red;
      }
      
      </style>
      </head>
      <body>
          <h1>勇气</h1>
          <p>三年级时,我还是一个<span id="stress">胆小如鼠</span>的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
          <p>到了三年级下学期时,我们班上了一节公开课,老师提出了一个很简单的问题,班里很多同学都举手了,甚至成绩比我差很多的,也举手了,还说着:"我来,我来。"我环顾了四周,就我没有举手。</p>
      
      </body>
      
    • 6 类和ID选择器的区别

      1. ID选择器只能在文档中使用一次.ID在一个HTML文档中,ID选择器只能使用一次,而且仅一次.而类选择器可以使用多次.
      2. 可以使用类选择器词列表方法为一个元素同时设置多个样式.
      .stress{
          color:red;
      }
      .bigsize{
          font-size:25px;
      }
      <p>到了<span class = "stress bigsize">三年级</span>下学期时</p>
      
    • 7 子选择器

      用大于符号(>),用于选择指定标签元素的第一代子元素.
      .food > li {borde:1px solid red;}
      代码如下:
      <html>
      

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>子选择符</title>
    <style type="text/css">
    .food > li{color: blue;}/添加边框样式(粗细为1px, 颜色为红色的实线)/
    .first > span{border:1px solid red;}
    </style>
    </head>
    <body>
    <p class="first">三年级时,<span>我还是一个<span>胆小如鼠</span>的小女孩</span>,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
    <h1>食物</h1>
    <ul class="food">
    <li>水果
    <ul>
    <li>香蕉</li>
    <li>苹果</li>
    <li>梨</li>
    </ul>
    </li>
    <li>蔬菜
    <ul>
    <li>白菜</li>
    <li>油菜</li>
    <li>卷心菜</li>
    </ul>
    </li>
    </ul>
    </body>
    </html>
    效果图时这样的:
    ```

    14954364402366.jpg
    ```
    子选择器我开始没看懂,但是看到评论区有个人分析,才恍然大悟,>这个“选择指定标签元素的第一代子元素”就是让样式只作用于它的孩子,不作用与他的孙子。注意看这段代码:
    <p class="first"><span>我还是一个<span>胆小如鼠</span>的小女孩</span></p>
    看清了外面的span是p标签的亲儿子,而里面的span是p标签的孙子,所有,子选择器选择的是外面的span标签,所以是外面的span元素有红色边框...(说实话,技术课程搞那么多虚的概念不如大白话来的明白!)
    ```
    
    • 8 包含(后代)选择器,加入空格,用于选择指定标签元素下的后辈元素.

      .first span{color: red;}
      

    与子选择器的区别: 子选择器仅是指它的直接后代,而后代选择器作用与所有后代子元素.

    ```HTML
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>后代选择器</title>
    <style type="text/css">
    .first span{color:red;border: 1px solid blue;}
    
    .food li{
        border:1px solid red;/*添加边框样式(粗细为1px, 颜色为红色的实线)*/   
    }
    </style>
    </head>
    <body>
     <p class="first">三年级时,<span>我还是一个<span>胆小如鼠</span>的小女孩</span>,上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
    <!--下面是本小节任务代码-->
    <ul class="food">
        <li>水果
            <ul>
                <li>香蕉</li>
                <li>苹果</li>
                <li>梨</li>
            </ul>
        </li>
        <li>蔬菜
            <ul>
                <li>白菜</li>
                <li>油菜</li>
                <li>卷心菜</li>
            </ul>
        </li>
    </ul>
    
    代码运行结果:
    ```
    
    14954371747130.jpg

    注意: 慕课给出的例子还是不太容易理解,我对代码稍稍做了修改,更能轻易的对比出包含选择器和子选择器的区.

    • 9 通用选择器
      使用一个(*)指定,作用是匹配html中所有标签元素

      {color:red;}
      
    • 10 伪类选择符
      它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:

      a:hover{color:red;}
      

    意思就是为a标签划过的状态设置字体颜色变红.目前为止,可以兼容所有浏览器的"伪类选择符"就是a标签上使用 :hover了,比较常用的还是 a:hover 的组合

    • 11 分组选择器
      当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符;

      h1,span{color:red;}
      /*相当于*/
      h1{color:red;}
      span{color:red;}
      

    示例:

    ```HTML
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>分组选择符</title>
    <style type="text/css">
    
    .first span,#second span,.askMe span{color:green;}
    </style>
    </head>
    <body>
        <h1>勇气</h1>
        <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩,上课从来不敢回答老师提出的问题,生怕回答错了老师会<span class = "askMe">批评我</span>。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p>
        <p id="second">到了三年级下学期时,我们班上了一节公开课,老师提出了一个很<span>简单</span>的问题,班里很多同学都举手了,甚至成绩比我差很多的,也举手了,还说着:"我来,我来。"我环顾了四周,就我没有举手。</p>
        ![](http:https://img.haomeiwen.com/i1526313/760d0a2982c0befd.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    </body>
    </html>
    ```
    
    • 12 继承
      cs的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码: 某种颜色应用于p标签,这里子元素为span标签.

      p{color:red;}
      <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩.</p>
      

    span中的文本也被设置成了红色.但有一些css样式是不具有继承性的.比如 border:1px solid red;

    • 13 特殊性
      有时候我们为同一个元素设置了不同的css样式代码,那么元素会启用哪一个css样式呢?

      p{color:red;}
      .first{color:green;}
      <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩</p>
      /*会显示绿色,浏览器会按照权值来判断使用哪种css样式,哪种权值高的就使用哪种css样式*/
      

    权值的规则:
    标签权值为1,类选择符的权值为10,ID选择符的权值最高为100.继承也有权值,但是最低(0.1)

    • 14 层叠
      一个元素有多个css样式,当有相同权重的样式存在时,会根据这些css样式的前后顺序来解决,处于最后面的css样式会被应用.

      p{color:red;}
      p{color:green;}
      <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
      /*最后 p 中的文本会设置为green,这个层叠很好理解,理解为后面的样式会覆盖前面的样式。所以前面的css样式优先级就不难理解了:
      

    内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。*/
    ```

    • 15 手动设置最高权值
      使用!important手动设置某些样式的最高权值

      p{color:red !important;}
      p{color:green;}
      <p class = "first"> 三年级时,我还是一个<span>胆小如鼠</span>的小女孩.</span>
      /*p段落中的文本会显示红色,尽管红色设置在绿色前面*/
      

    注意: !important要写在分号的前面,即使是下面的代码(类选择器的权值高于标签),p段落的文本也会显示红色哦~

    ```HTML
    p{color: red !important;}
    .first{color: green}
    <p class = "first"> 三年级时,我还是一个<span>胆小如鼠</span>的小女孩.</span>
    ```
    
    • 16 文字排版 -- 字体
      为网页的文字设置字体为宋体,代码:

      body{font-family: "宋体";}
      

    注意: 不要设置不常用的字体,因为如果用户本地电脑上没有安装你设置的字体,就会显示浏览器的默认字体.一般的网页喜欢设置"微软雅黑":

    ```CSS
    body{font-family: "Microsoft Yahei";} 
    /*or*/
    body{font-family: "微软雅黑";}
    /*第一种比第二种兼容性更好一些*/
    ```
    
    • 17 文字排版

      /*字号、颜色:*/
      body{font-size: 12px;color: #666}
      
      /*粗体:*/
      p span{font-weight: bold;}
      
      /*斜体*/
      p a{font-style: italic;}
      <p>三年级时,我还是一个<a>胆小如鼠</a>的小女孩。</p>
      
      /*下划线*/
      p a{text-decoration: underline;}
      <p>三年级时,我还是一个<a>胆小如鼠</a>的小女孩。</p>
      
      /*删除线*/
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      <title>删除样式</title>
      <style type="text/css">
      .oldPrice{text-decoration: line-through;}
      </style>
      </head>
      <body>
      <p>原价:<span class="oldPrice">300</span>元 现价:230 元</p> 
      </body>
      </html>
      
      <!--段落排版,缩进-->
      p{text-indent: 2em;}
      <p>1922年的春天,一个想要成名名叫尼克卡拉威(托比?马奎尔Tobey Maguire 饰)的作家,离开了美国中西部,来到了纽约。那是一个道德感渐失,爵士乐流行,走私为王,股票飞涨的时代。为了追寻他的美国梦,他搬入纽约附近一海湾居住。</p>
      
      <!--段落排版,行间距(行高)-->
      p{line-height: 1.5em;}
      <p>菲茨杰拉德,二十世纪美国文学巨擘之一,兼具作家和编剧双重身份。他以诗人的敏感和戏剧家的想象为"爵士乐时代"吟唱华丽挽歌,其诗人和梦想家的气质亦为那个奢靡年代的不二注解。</p>
      
      <!--中文文字间隔,字母间隔-->
      h1{letter-spacing: 50px;}
      <h1>了不起的盖茨比</h1>
      <!--英文单词之间的间隔-->
      h1{word-spacing: 50px;}
      <h1>welcome to China!</h1>
      
      <!--段落排版,对齐-->
      h1{text-align: center;}
      <h1>了不起的盖茨比</h1>
      <!--居左-->
      h1{text-align: left;}
      <h1>了不起的盖茨比</h1>
      <!--居右-->
      h1{text-align: right;}
      <h1>了不起的盖茨比</h1>
      
    • 18 元素分类
      html中的标签元素大体被分为三种不同的类型: 块状元素、内联元素(又叫行内元素)和内联块状元素.

      <!--常用的块状元素-->
      <div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
      <!--常用的内联元素-->
      <a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
      <!--常用的内联块状元素-->
      <img>、<input>
      

    块级元素特点:
    1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
    3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
    将内联元素a转换为块状元素:
    a{display: block;}

    内联元素特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度及顶部和底部边距不可设置;
    3、元素的宽度就是它包含的文字或图片的宽度,不可改变。
    将块状元素转换为内联元素:
    div{display: inline;}

    内联块状元素特点:
    同时具有内联元素和块状元素的特点.
    1、和其它元素都在一行上;
    2、元素的高度、宽度、行高以及顶和低边距都可设置
    将元素设置为内联块状元素:
    display: inline-block;

    
        ```
           <!--a 
           元素设置了宽和高,但都没有起到作用,原因是a在默认的时候是内联元素,内联元素是不可以设置宽和高的。如果将a元素设置为内联块状元素就可以了.
           -->
           <html>
           <head>
           <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
           <title>内联块状元素</title>
           <style type="text/css">
           a{
               display: inline-block;
            width:20px;/*在默认情况下宽度不起作用*/
            height:20px;/*在默认情况下高度不起作用*/
            background:pink;/*设置背景颜色为粉色*/
            text-align:center; /*设置文本居中显示*/
           }
           </style>
           </head>
           <body>
           <a>1</a>
           <a>2</a>
           <a>3</a>
           <a>4</a>
           </body>
           </html>
        ```
    
    * 19 盒模型的边框
    
        ```CSS
        /*边框: 盒子模型的边框就是围绕着内容及补白的线,这条线可以设置它的粗细、样式和颜色*/
        div{ border: 2px solid red; }
        /*也可以写成这样*/
        div{
            border-width: 2px;
            border-style: solid;
            border-color: red;
        }
        ```
    
        ```
        注意:
        1、border-style(边框样式)常见样式有:
        dashed(虚线)| dotted(点线)| solid(实线)。
        2、border-color(边框颜色)中的颜色可设置为十六进制颜色,如:
        border-color:#888;//前面的井号不要忘掉。
        3、border-width(边框宽度)中的宽度也可以设置为:
        thin | medium | thick(但不是很常用),最常还是用象素(px)。
        ```
    
        ```CSS
        /*单独设置一个方向的边框*/
        div{border-bottom: 1px solid red;}
        /*同样可以使用下面的代码设置其他方向的边框*/
        div{
            border-top: 1px solid red;
            border-right: 1px solid red;
            border-left: 1px solid red;
        }
        ```
    * 20 盒模型的宽度和高度    
    
        ```
        盒模型的宽度和高度指的是填充以里的内容范围.
        一个元素实际宽度(盒子的宽度) = 左边界 + 左边框 + 左填充 + 内容宽度 + 右填充 + 有边框 + 右边界.
        元素的高度同理.
        ```
    
    ![14951611926229.jpg](http:https://img.haomeiwen.com/i1526313/14cb27777005677e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
          
    * 21 盒模型的填充
    
        ```CSS
        元素的内容和边框之间是可以设置距离的,称之为"填充",填充可分为上右下左(顺时针).
        div{padding: 20px 10px 15px 30px;}
        /*顺序不要搞混,可以分开写上面的代码*/
        div{
            padding-top: 20px;
            padding-right: 10px;
            padding-bottom: 15px;
            padding-left: 30px;
        }
        /*如果上右下左的填充都为10px,可以这样*/
        div{padding: 10px;}
        /*如果上下填充一样,左右一样,可以这样*/
        div{padding: 10px 20px;}
        ```
    
    ![~HQX@~G~H7P5%0I~~-OU5-O.jpg](http:https://img.haomeiwen.com/i1526313/a027d2215e99871b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
    
    ![14951644122414.jpg](http:https://img.haomeiwen.com/i1526313/a8670ad8655789f6.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/550)
    
    
    * 22 盒模型的边界
    
        ```CSS
        /*使用边界margin来设置,边界也是可分为上右下左:*/
        div{margin: 20px 10px 15px 30px;}
        /*也可以分开写*/
        div{
            margin-top: 20px;
            margin-right: 10px;
            margin-bottom: 15px;
            margin-left: 30px;
        }
        /*边界都一样的*/
        div{
            margin: 10px;
        }
        /*上下一样,左右一样的*/
        div{
            margin: 10px 20px;
        }
        ```
        ```
        结论: padding和margin的区别,padding在边框里,margin在边框外
        ```
    * 23 css布局模型
    
        ```
        清楚了CSS 盒模型的基本概念、 盒模型类型, 我们就可以深入探讨网页布局的基本模型了。布局模型与盒模型一样都是 CSS 最基本、 最核心的概念。 但布局模型是建立在盒模型基础之上,又不同于我们常说的 CSS 布局样式或 CSS 布局模板。如果说布局模型是本,那么 CSS 布局模板就是末了,是外在的表现形式。 
        CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。
        在网页中,元素有三种布局模型:
        1、流动模型(Flow)
        2、浮动模型 (Float)
        3、层模型(Layer)
        ```
    * 24 流动模型   
    
        ```
        流动是默认的网页布局模式.网页在默认状态下的HTML网页元素都是根据流动模型来分布网页内容的.流动布局模型具有2个比较典型的特征:
        第一,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%.实际上,块状元素都会以行的形式占据位置.
        第二,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示.
        ```
    * 25 浮动模型
    
        ```HTML
        块状元素独占一行,如果我们想让两个块状元素并排显示,怎么办呢?答案是设置元素浮动.
        默认情况下,任何元素都是不能浮动的,但是可以用CSS定义为浮动.如下代码可以实现两个div元素一行显示
        div{
            width: 200px;
            height: 200px;
            border: 2px red solid;
            float: left
        }
        <div id = "div1"></div>
        <div id = "div2"></div>
        ```
    ![14951841449148.jpg](http:https://img.haomeiwen.com/i1526313/f8c5f013faff9703.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/550)
        ```
        /*当然也可以设置两个元素右浮动,也可以实现一行显示*/
        div{
            width: 200px;
            height: 200px;
            border: 2px red solid;
            float: right;
        }
        ```
    
    ![14951842383390.jpg](http:https://img.haomeiwen.com/i1526313/08bfcd07776f0ca5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/550)
    
    
        ```css
        /*设置一左一右*/
        div{
            width: 200px;
            height: 200px;
            border: 2px red solid;
        }
        #.div1 {float: left;}
        #.div2 {float: right;}
        ```
    
    ![14951843627308.jpg](http:https://img.haomeiwen.com/i1526313/1f0638416449488a.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/550)
    
    * 26 层模型
    
        ```
        CSS定义了一组定位(positioning)属性来支持层布局模型.
        层模型有三种形式:
        1. 绝对定位(position: absolute)
        2. 相对定位(position: relative)
        3. 固定定位(position: fixed)
        ```
        ```
        层模型的绝对定位: 将元素从文档流中拖出来,然后使用left 、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位.如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口.
        ```
    **个人总结: 相当于移动端开发的frame布局(这点大家都很懂,蜜汁微笑)**
    
        ```CSS
        div{
            width: 200px;
            height: 200px;
            border: 2px red solid;
            position: absolute;
            left: 100px;
            top: 50px;
        }
        <div id = "div1"></div>
        ```
    效果如下:
    
    ![14951852082151.jpg](http:https://img.haomeiwen.com/i1526313/31f9101bc5c9d49c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/500)
    
    
    
    层模型的相对定位
    position: relative(表示相对定位),它通过left、right、top、bottom属性确定元素
    在正常文档流中的偏移位置.首先按static(float)方式生成一个元素(并且元素像层一样浮动
    了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性
    确定,偏移前的位置保留不动.
    如下代码实现相对于以前位置向下移动50px,向右移动100px;
    #div1{
        width: 200px;
        height: 200px;
        border: 2px red solid;
        position: relative;
        left: 100px;
        top: 50px;
    }
    <div id = "div1"></div>
    ```
    

    效果图:


    14951876467910.jpg
     /*如果加上这段代码,便能清楚的理解"偏移前的位置保留不动"了,效果图如下*/
    <body>
        <div id="div1"></div><span>偏移前的位置还保留不动,覆盖不了前面的div没有偏移前的位置</span>
    </body>
    
    14951877626489.jpg
    层模型的固定定位:
    注意: 如果你是移动端开发者,你可以把它理解成一个悬浮框(解释的内容可以跳开不看了),如果不明白,再去看如下解释
    fixed: 表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身,由于视图本身是固定的,他不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口视图的某个位置,不会受到文档流动影响.
    代码:
    #div1{
      width:200px;
      height:200px; 
      border:2px red solid; 
      position: fixed; 
      bottom: 0; 
      right: 0;
    }
    <div id="div1"></div>
    
    • 27 relative 与 Absolute组合使用

      使用position: absolute 可以实现被设置元素相对于浏览器设置定位,但是可不可以相对其它元素进行定位呢?答案是可以的,使用 position: relative来帮忙,但是必须遵守下面的规范:
      1. 参照定位的元素必须是相对定位元素的前辈元素(相当于iOS的父控件):
      <div id = "box1"> <!--参照定位元素-->
          <div id = "box2">相对参照元素进行定位</div>
      </div>
      2. 参照定位的元素必须加入 position: relative;
      #box1{
          width: 200px;
          height: 200px;
          position: relative;
      }
      3. 定位元素加入position: absolute,便可以使用top、bottom、left、right来进行偏移定位了.
      #box2{
          position: absolute;
          top: 200px;
          left: 30px;
      }
      这样,box2就可以相对于父元素box1定位了(这里注意: 参照物此时就可以不是浏览器了,而可以自由设置了).
      个人总结: 被定位元素想要相对于父类元素设置绝对定位,需父类元素实现 position: relative.
      
    • 28 盒模型代码简写

      还记得在讲盒模型时外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左。具体应用在margin和padding的例子如下:
      margin:10px 15px 12px 14px;/*上设置为10px、右设置为15px、下设置为12px、左设置为14px*/
      通常有下面三种缩写方法:
      
      1、如果top、right、bottom、left的值相同,如下面代码:
      margin:10px 10px 10px 10px;
      可缩写为:
      margin:10px;
      
      2、如果top和bottom值相同、left和 right的值相同,如下面代码:
      margin:10px 20px 10px 20px;
      可缩写为:
      margin: 10px 20px;
      
      3、如果left和right的值相同,如下面代码:
      margin:10px 20px 30px 20px;
      可缩写为:
      margin: 10px 20px 20px;
      
      注意:padding、border的缩写方法和margin是一致的。
      
    • 29 字体缩写

      网页中的字体css样式代码也有他自己的缩写方式,下面是给网页设置字体的代码:
      body{
          font-style:italic;
          font-variant:small-caps; 
          font-weight:bold; 
          font-size:12px; 
          line-height:1.5em; 
          font-family:"宋体",sans-serif;
      }
      这么多行代码可以缩写为一句:
      body{
          font: italic small-caps bold 12px/1.5em "宋体",sans-serif;
      }
      注意:
      1、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-variant、line-height)如未指定将自动使用默认值。
      
      2、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。
      
      一般情况下因为对于中文网站,英文还是比较少的,所以下面缩写代码比较常用:
      body{
          font:12px/1.5em  "宋体",sans-serif;
      }
      只是有字号、行间距、中文字体、英文字体设置。
      
    • 30 颜色值

      1、英文命令颜色
      p{color:red;}
      
      2、RGB颜色
      这个与 photoshop 中的 RGB 颜色是一致的,由 R(red)、G(green)、B(blue) 三种颜色的比例来配色。
      p{color:rgb(133,45,200);}
      每一项的值可以是 0~255 之间的整数,也可以是 0%~100% 的百分数。如:
      p{color:rgb(20%,33%,25%);}
      
      3、十六进制颜色
      这种颜色设置方法是现在比较普遍使用的方法,其原理其实也是 RGB 设置,但是其每一项的值由 0-255 变成了十六进制 00-ff。
      p{color:#00ffff;}
      
    • 31 长度值

      长度单位总结一下,目前比较常用到px(像素)、em、% 百分比,要注意其实这三种单位都是相对单位.
      1、像素
      
      像素为什么是相对单位呢?因为像素指的是显示器上的小点(CSS规范中假设“90像素=1英寸”)。实际情况是浏览器会使用显示器的实际像素值有关,在目前大多数的设计者都倾向于使用像素(px)作为单位。
      
      2、em
      
      就是本元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px;如果 font-size 为 18px,那么 1em = 18px。如下代码:
      p{font-size:12px;text-indent:2em;}
      上面代码就是可以实现段落首行缩进 24px(也就是两个字体大小的距离)。
      
      下面注意一个特殊情况:
      但当给 font-size 设置单位为 em 时,此时计算的标准以 p 的父元素的 font-size 为基础。如下代码:
      
      html:
      <p>以这个<span>例子</span>为例。</p>
      
      css:
      p{font-size:14px}
      span{font-size:0.8em;}
      结果 span 中的字体“例子”字体大小就为 11.2px(14 * 0.8 = 11.2px)
      老子的字体大小是14px,儿子的1em就是14px,没错,这很css.
      
      3、百分比
      
      p{font-size:12px;line-height:130%}
      设置行高(行间距)为字体的130%(12 * 1.3 = 15.6px)。
      

    结束语:
    持续挖坑中...

    相关文章

      网友评论

        本文标题:css语法部分

        本文链接:https://www.haomeiwen.com/subject/iqkixxtx.html