zoukankan      html  css  js  c++  java
  • CSS:描述样式

    一、CSS

      css:Cascading Style Sheet,层叠样式表,用于描述网页样式

        1. 同一个标签可以有多个选择器作用,给他增加样式;

        2. 有继承性,祖先的标签的一些属性,可以继承给后代标签;

        3. 有层叠性,当遇见冲突的时候有着一套严密法律,规定谁生效谁被杠掉。

      css的维护者是w3c,最新版是css3,但是浏览器没有那么好的兼容

      css分成两部分:

        1. 选择谁?

        2. 设置什么样式?

    二、选择器

      1. 标签选择器

      2. id选择器  "#"

      3. class选择器  "."

        给某一类元素,设置相同的类名,然后通过这个类名来选择它们。

        原子类:将一些简单的属性做成一个类,然后元素自行选择

      4. 后代选择器  .div1 .div3 p{}

      5. 交集选择器  p.ha{}

      6. 并集选择器  p,div{}

      7. 通配符 *{}

      继承性

        css规定,有一些属性,给某一个元素设置了,它的后代元素同样拥有这个属性了。

        有了继承性,就能够把一些初始的,基本的,普遍的设置,写在body里

        哪些元素具有继承性呢?

          color

          text-系列,例如 text-decoration:underline;

          font-系列,例如 font-size:30px;

          line-系列

        特别的,要知道不能继承的属性:background-color、所有盒模型的属性(widthheightborderpaddingmargin)都是不继承的!

      层叠性

        处理冲突的能力,就是当多个选择器都选择上了同一个标签,听谁的?

        权重:id > class > 标签

        1. 选择上了

          先比权重--再比远近(style出现的顺序)

        2. 没有选择上

          先比远近(祖辈标签的距离)--再比权重

        应用场景:先设置共性、再针对设置私有(层叠掉共性)

        !important提升权重:严禁滥用!important提升权重,只能在原子类的情况时有!

    三、设置样式

      颜色表示法

        1. 单词

          blackwhiteredgreenblueyellowpinkorangepurplegoldgrayyellowgreengreenyellow等等

        2. rgb() 

          红色
          background-color: rgb(255,0,0);
          绿色
          background-color: rgb(0,255,0);
          蓝色
          background-color: rgb(0,0,255);
          黑色
          background-color: rgb(0,0,0);
          白色
          background-color: rgb(255,255,255);
          灰色
          background-color: rgb(111,111,111);

        3. 十六进制

    1. 文字样式

      color

      font-size:尺寸

      line-height:行高

      font-family:字体

        网页中,为了让所有用户都有一致的体验,只能使用宋体、微软雅黑

        font-family:"Arial","Microsoft Yahei","SimSun";

      font-weight:字体权重

        font-weight:bold;   ---> font-weight:700;  加粗

        font-weight:normal; ---> font-weight:400;  不加粗

      font-style:样式

        font-style:italic;    倾斜

        font-style:normal;   不倾斜

      text-decoration:字体装饰

        text-decoration:underline;    下划线

        text-decoration:none;      默认,没有下划线

        text-decoration:line-through;   删除线

      

      font综合

      font:italic bold 12px/20px "arial","Microsoft Yahei","SimSun";

     

    2. 盒子模型

      盒模型就是width、height、padding、border、margin这几个属性

      真实占有宽度 = width + 左边padding + 右边padding + 左边border + 右边border

      padding:上、右、下、左

      padding-top、padding-right、padding-bottom、padding-left;

    padding:10px 20px 30px;
    /*等价于*/
    padding-top:10px;
    padding-right:20px;
    padding-bottom:30px;
    padding-left:20px;/*和右边一样*/

      border:粗细 线型 颜色

      border:1px solid red;     工作中只许用solid(实线)和dashed(虚线),其他线型都有兼容问题

      border-width、border-style、border-color;

      border-top-width、border-top-style、border-top-color;

      border-bottom:none;  如果某一个边框我们不想要,那么就写none

      margin:外边框

      margin-top、margin-right、margin-bottom、margin-left;

      注意:相邻的两个margin有塌陷现象,以margin大的为准。

      居中策略

      text-align:center;   盒子中的文字水平居中

      margin:0 auto;    盒子本身水平居中

      line-height:盒子高度;  但行文本的垂直居中

    3. 浮动

      标准文档流

        从左至右、从上到下、有一个"光标"的概念

        性质:空白折叠现象;高矮不齐,底边对齐;把元素分为"块级元素"和"行内级元素"

        块级元素:div、h、p、ul、li、dl、dt、dd

          能够设置宽度、高度(没有设置宽度,默认是父亲的宽度)

          不能并排

        行内级元素:span、a、b、u、i、em、strong

          不能设置宽度、高度

          可以并排

        块级和行内相互转换

          display:block;  把行内-->块  非常有用

          display:inline;  把块-->行内  丝毫无用,工作10年都遇不到

      我们发现标准文档流是做不出网页的,因为它太迂腐:能够设置宽度的不能并排,能够并排的不能设置宽高

      所以需要脱离标准流:脱离标准流一共有三种方法:浮动、绝对定位、相对定位

      浮动:float

        浮动是做并排用的

        浮动元素脱离了文档流,所以没有inline、block之分了

        浮动的儿子不能撑高父亲

        浮动在竖直方向上的margin塌陷现象消失

        浮动字围效果

      清除浮动

        有高度的盒子能够管住自己内部的浮动元素

        如果盒子没有高度,内部浮动的元素序列就乱套了,第二个序列就会追随第一个序列了。

        解决办法1:给后面的盒子加上clear:both

          缺点:box还是没有高度、margin失效

        解决方法2:隔外墙

          虽然margin失效,但可以用小技巧来弥补,可以用墙的高度来做间隔

          但是盒子依然没有高度

         解决办法3:内墙

          现在有了margin、也有了高度了,但是放置的标签太多。这些标签没有语义,看起来不爽。

         解决办法4:overflow:hidden;

          工作中常用的

          在浮动的父盒子上加 overflow:hidden;

          在两个大部分之间隔外墙

    <div class="box1">  → 这个盒子没高,就写上overflow:hidden;
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
    </div>
    <div class="box2">  → 这个盒子没高,就写上overflow:hidden;
        <p>1</p>
        <p>2</p>
        <p>3</p>
    </div>

      

    4. 定位

      position:relative;  相对定位

      position:absolute;  绝对定位

      position:fixed;    固定定位

      子绝父相

      z-index   只有定位的元素才能写z-index值;从父现象(父亲怂了,儿子再牛逼也没有用)

    5. 背景

      属性

      background:red url(1.jpg) no-repeat -10px -100px fixed;

      background-color:red;

      background-image:url(images/1.jpg);

      background-repeat:no-repeat/repeat-x/repeat-y;

      background-attachment:fixed;  固定

      background-position:100px 200px;     

        最常见的应用:CSS精灵

        就是把多个小杂碎图片,合成一张图片,然后通过backgroud-position定位只显示其中一部分。

        这样能够显著降低HTTP请求数

        

      应用:

        通栏banner/大背景

        background-position:center top;    ---->background-position:50% 0;

        背景图的应用

        先导符号放到padding里

        <h1>爱前端-专业的前端开发培训</h1> 

    .header h1{
        width: 221px;
        height: 68px;
        background:url(images/logo.png);
        /*h1中的文字方便搜索引擎抓取,背景图用于展示*/
        line-height: 400px;
        overflow: hidden;
    }    

       

    6. 表格、列表

    ul{

        list-style:none;

    }

    7. 超链接美化

      伪类:link、visited、hover、active

      爱恨准则:love hate

      常见写法:

      a:link,a:visited{}

      a:hover{}

      

      

    /*楔形小三角*/
    div{
        width: 0px;
        height: 0px;
        border: 10px solid white;
        border-top-color:blue;
        border-bottom: none;
        transition:all 0.4s ease 0s;
    }
    div:hover{
        transform:rotate(180deg);
    }
  • 相关阅读:
    学习bn算法
    记录pytorch的几个问题
    Python: 你不知道的 super
    cmd里面怎么复制粘贴
    tensorflow的transpose
    应该做一个软件,直接把视频里面的英语,转换成字幕,然后翻译
    继续修改,爬虫贴吧,上次的每次只取一个图片.
    Deleting elements
    Map, filter and reduce
    List methods
  • 原文地址:https://www.cnblogs.com/zhoujian43/p/6825403.html
Copyright © 2011-2022 走看看