00.CSS基础知识回顾

1.选择器

  • 元素选择器
标签名 {}
p {}:选中所有的p元素
h1 {}:选中所有的h1元素
  • id选择器
#id {}
#p1 {}:选中id为p1的元素
  • 类选择器
.class {}
.pclass {}:选中类为pclass的所有元素
结合元素选择器
a.class{}:选中类为class的a元素
多类选择器
.p1.p2{}: 选中类为p1同时为p2的元素
  • 属性选择器
    [属性名]选取含有指定属性的元素
    [属性名="属性值"]选取含有指定属性值的元素
p[title] {}:选中所有包含title属性的p元素
p[title="hello"]{}:选中所有title属性值是hello的元素
  • 子元素选择器
    元素之间的关系
    父元素:直接包含子元素的元素
    子元素:直接被父元素包含的元素
    祖先元素:直接或间接包含后代元素的元素
    后代元素:直接或间接被祖先元素包含的元素
    兄弟元素:拥有相同父元素叫做兄弟元素

父元素>子元素{}

div>span{}:选中div元素中的子元素span,只能是一代父子关系
  • 派生选择器(后代选择器)
    祖先元素 后代元素 {}
div span{}:选中所有div中的span
#d1 p span{}:选中id为d1的p元素中的所有span元素
  • 相邻兄弟选择器
    可选择紧接在另一个元素后的元素,且二者有相同的父元素。
    h1+p{}
<style>
    div+p{
      background-color:blue;
    }
</style>
</head>

<body>
  <div>
      <div>
          <p>品</p>
      </div>
       <p>品</p>
       <p>品</p>
       <p>品</p>
       <p>品</p>
  </div>

</body>
  • 通用兄弟元素选择器
    div~p所有的div之后的的兄弟p元素都被选中
<style>
    div~p{
      background-color:blue;
    }
</style>
</head>

<body>
  <div>
      <div>
          <p>品</p>
      </div>
       <p>品</p>
       <p>品</p>
       <p>品</p>
       <p>品</p>
  </div>

</body>
  • 选择器分组(并集)
    同时选中多个选择器对应的元素。
    选择器1,选择器2,选择器3 {}
#p1,.p2,h1 {}:选中id为p1、类为.p2、元素为h1的所有元素。只需满足一个条件
  • 选择器的优先级
    当使用不同的选择器,选中同一个元素时并且设置相同的样式时,这时样式之间产生了冲突,最终到底采用哪个选择器定义的样式,由选择器的优先级(权重)决定优先级高的优先显示。
    • 优先级的规则:
      内联样式,优先级1000
      id选择器,优先级100
      类和伪类,优先级10
      元素选择器:优先级1
      通配选择器,优先级0
      继承的样式,没有优先级

当选择器中包含多种选择器时,将优先级相加再比较。但是注意,选择器的优先级计算不会超过他的最大数量级。

如果选择器优先级一样,则使用靠后样式。

并集选择器的优先级是单独计算
div,p,#p1,.hello
可以在样式的最后添加一个!important;则此时该样式将会获得一个最高的优先级,将会优先于所有的样式显示,但不推荐使用。

2.CSS基本样式

  • 背景
    background-attachment:背景图像是否固定或随页面其余部分滚动
    background-color:背景颜色
    background-image:把图片设置为背景
    background-position:设置背景图片的起始位置
    background-repeat:设置背景图片是否及如何重复

  • 文本
    color:文本颜色
    direction:文本方向
    line-height:行高
    letter-spacing:字符间距
    word-spacing:字间距
    text-align:对齐方式
    text-decoration:文本添加修饰
    text-indent:首行缩进
    text-transform:元素中字母处理
    white-space:元素中空白的处理

  • 字体
    font-family:设置字体
    font-size:设置字体尺寸呢
    font-style:设置字体风格
    font-variant:以小型大写字体或正常字体显示文本
    font-weight:字体加粗

  • 链接
    css链接的四种状态:
    a:link 普通的、未被访问的链接
    a:visited 用户已访问的链接
    a:hover 鼠标指针位于链接的上方
    a:active 链接被点击的时刻
    链接相关设置:
    text-decoration:属性大多用于去掉链接中的下划线
    background-color:背景颜色

  • 列表 li
    list-style:简写列表项
    list-style-image:列表项图像
    list-style-position:列表标志位置
    list-style-type:列表类型

  • 表格
    border:1px solid blue 设置外边框
    border-collapse:collapse 折叠边框
    width、height:设置表格宽高
    background-color:设置表格的背景颜色

  • 轮廓
    outline:设置轮廓属性
    outline-color:设置轮廓颜色
    outline-style:设置轮廓样式
    outline-width:设置轮廓宽度

3.CSS定位

1)CSS定位属性

position:把元素放在static、relative、absolute、fixed的位置中。

  • static:没有开启定位,偏移量不起作用,默认是static。
  • relative:相对定位,相对于元素本身的位置来定位
  • absolute:绝对定位,相对于position属性除static 之外(相对于第一个开启定位)的第一个父元素进行定位,元素脱离文档流。当所有父元素都没有开启定位时,会相对于浏览器窗口定位。
  • fixed:固定,不随滚动而改变

top:元素向上的偏移量
left:元素向左的偏移量
right:元素向右的偏移量
bottom:元素向下的偏移量
overflow:设置元素溢出其区域发生的事情
clip:设置元素显示的形状
vertical-align:设置元素垂直对齐方式
z-index:设置元素的堆叠顺序,谁值大谁呈现在前面。

2)CSS浮动
  • float属性:
    left:元素向左浮动
    right:元素向右浮动
    none:元素不浮动
    inherit:从父级继承浮动属性
    浮动之后的元素会脱离文档流,不再占有页面的位置
    内联元素浮动后变成块元素。

  • clear属性:用于清除浮动元素对当前元素的影响
    去掉浮动属性(包括继承来的属性)
    left、right:去掉元素向左、向右浮动
    both:左右两侧均去掉浮动
    inherit:从父级继承来的clear的值

  • 浮动带来的问题:高度塌陷
    当子元素在父元素之中,父元素没有设置高度,那么父元素的高度是由子元素撑开的,这时候子元素浮动脱离文档流,父元素没有内容高度塌陷。

<style>
    #box1{
      border:10px blue solid;
    }
    #box2{
        width:200px;
        height:200px;
        background-color:yellow;
    }
    #bottombox{
       height:200px;
       background-color:red;
    }
</style>
</head>

<body>
<div id="box1">
    <div id="box2"></div>
</div>
<div id="bottombox"></div>

可以看到box1的高度是由其子元素box2撑起来的。


当我们让子元素box2浮动:

#box2{
        width:200px;
        height:200px;
        background-color:yellow;
        float:right;
    }

box1已经没有高度了。



解决方法:
1)IE6之外浏览器
通过overflow:hidden给塌陷的父元素开启BFC
当开启元素的BFC后元素会具有如下特点:


2)IE6不支持BFC模式,利用zoom:1开启hasLayout

<style>
    #box1{
      border:10px blue solid;
      overflow:hidden;
      zoom:1;
    }
    #box2{
        width:200px;
        height:200px;
        background-color:yellow;
        float:right;
        
        
    }
    #bottombox{
       height:200px;
       background-color:red;
    }
</style>
</head>

<body>
<div id="box1">
    <div id="box2"></div>
</div>
    <div id="bottombox"></div>
</body>

3)利用clear属性,为父元素的:after尾元素清除浮动(IE6不支持)

<style>
    #box1{
      border:10px blue solid;
    
    }
    #box2{
        width:200px;
        height:200px;
        background-color:yellow;
        float:right;
        
        
    }
    #bottombox{
       height:200px;
       background-color:red;
    }
    
    .clearfix:after{
        content:"";
        display:block;
        clear:both;
    }
    .clearfix{
             <!--IE6还是要用zoom -->
      zoom:1;
     }
</style>
</head>

<body>
<div id="box1" class="clearfix">
    <div id="box2"></div>
</div>
    <div id="bottombox"></div>
</body>

4.CSS盒子模型

盒子模型
  • 内边距:
    padding:上 右 下 左
    padding-left、padding-right、padding-top、padding-bottom

  • 边框:
    边框样式:border-style
    double:双线 dotted:虚线
    单边样式:border-top-style border-left-style border-right-style border-bottom-style
    边框宽度:border-width
    单边宽度:border-top-width border-left-width border-right-width border-bottom-width
    边框颜色:border-color
    单边颜色: border-top-color border-left-color border-right-color border-bottom-color

  • 外边距
    margin:上 右 下 左
    margin-left、margin-right、margin-top、margin-bottom
    外边距叠加:
    当两个div,一个设置margin-bottom:20px
    一个设置margin-top:20px
    外边距不是40,而是20。


5.CSS常用操作

  • 对齐操作

1)使用margin属性进行水平对齐

//使div居中
margin-left:auto;
margin-right:auto;
//上面代码等同于
margin:0px auto;

2)使用position属性进行左右对齐

//向右对齐
position:absolute;
right:0px;
//向左对齐
position:absolute;
left:0px;

3)使用float属性进行左右对齐

//向右对齐
float:right;
//向左对齐
float:left;
  • 尺寸操作
    width、height。
    max-width、max-height。
    min-width、min-height。
    line-height

  • 显示元素
    1)display
    inline:将该元素显示为内联元素
    block:将该元素显示为块元素
    inline-block:将该元素显示为内联块元素
    none:此元素不会被显示
    2)visibility
    设置元素是否可见
    hidden
    visible
    3)visibility:hidden和display:none区别
    display:none,元素从页面中移除,不再占据页面中的位置。
    visibility:hidden,仅仅隐藏该元素,依然在页面中占据空间。

  • 设置指针类型
    cursor:设置鼠标在元素上的样子
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,469评论 0 5
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,017评论 0 1
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,049评论 0 40
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,800评论 0 6