css样式

1. 造福大众回馈社会

  在此先贴出我之前看《CSS权威指南》这本书时的读书笔记(有点遗憾在做计科院静态网页的时候发现自己好多忘得差不多了,但好在有笔记):   

    链接:https://pan.baidu.com/s/1pMVV_G1TcZ5XpKBY7UQefA
    提取码:9nnf 

  以下是笔记结构摘要,博客之后内容根据笔记每章内容进行一个总结

    

 

2. 关于CSS

  HTML用于定义内容的结构和语义,CSS用于设计风格和布局。比如使用CSS来更改内容的字体、颜色、大小、间距,将内容分为多列,或者添加动画及其他的装饰效果。

 

3. CSS选择器

  通配选择器: *{ }  PS可能带来意想不到的结果

  多类选择器:被选择的元素可以包含多类选择器所列之外的类,但必须同时包括所列类

   

  P.S: ID选择器和类选择器都可以忽略通配符,ID选择器不能结合使用,因为ID属性不允许有以空格分隔的词列表

  属性选择器:

    简单属性选择器: * / 元素名 [属性名]{ }  选择包含某个属性的元素

  后代选择器:

    Father child { }:可以用于为同类元素设置不同的样式

  子元素选择器:

    Father > child {}  直接后代

  选择相邻兄弟元素:

    选择紧接在另一个元素之后的元素 : 元素1 + 元素2 {}

      PS:两个元素之间的文本不会影响作用。

  伪类选择器:

    静态伪类

    动态伪类

 

4. 层叠和结构

  层叠:结合结构树来理解选择器,解决当两个特殊性相等规则同时应用到同一个元素。

  结构树:也是“继承”的核心。确定应当想一个元素应用那些值时,不仅要考虑继承,还要考虑声明的特殊性,和声明本身的来源---层叠

  声明的特殊性:如果一个元素有多个冲突的属性声明,则最高特殊性的胜出。(实际上,所有的冲突解决都是由层叠来处理的)。

    

    内联样式的特殊性最高

  继承:样式不仅会应用到指定元素,还会应用到它的后代元素。声明沿结构树向下传播到后代,并一直继续直到没有更多的后代元素集成这个值为止。绝不会向上传递到其祖先。

    继承的特殊性:没有特殊性,连0特殊性都没有。

 

5. 值和单位

  数字:

    整数和实数。主要作为其他值类型的基础,某些情况下也可以做属性的值。

    可正可负,不过属性通常可能会限制允许的数字范围。

  百分数:

    总是相对于另一个值。

    接受百分数的属性会对百分数值定义某些限制,还会定义百分数计算到什么程度。

  颜色:颜色名、十六进制码、rgb(x, x, x)

  长度单位:可正可负,还可以使用实数。长度为0时可以不需要跟单位。

    绝对长度单位:英寸(in)、厘米(cm)、毫米(mm)、点(pt)(1in=72pt)、派卡(pc)(ipc=12pt)——只有在清楚显示器、打印机或者其他用户代理的所有细节时,这些单位才有用。显示受尺寸限制。

    相对长度单位:em、ex、px ——根据其他事务关系来度量。实际距离可能因为不在其控制下的其他因素的改变而改变。

      1em定义为一种给定字体的font-size;

      1ex:所用字体中小写x的高度

  URL:相对和绝对——在CSS中,相对URL要相对于样式表本身,而不是相对于使用样式表的HTML文档

 

6. 字体

  字体加粗:font-weight

    

  字体大小:font-size

    

  风格和变形:font-stylefont-variant

      

  拉伸和调整字体:font-stretch和font-size-adjust

  font属性:

    

 

 7. 文本属性

   水平缩进: text-intent

    

 

   水平对齐:text-align

    

   垂直对齐:line-height行高 文本行基线之间的距离。line-height的值和字体之间的大小之差是行间距。

     

   垂直对齐文本:vertical-align

    

   文本装饰text-decoration

   处理空白符white-space

    

 

8. 基本视觉格式化 

  包含块:每个元素都相对于其包含块摆放。元素的布局依赖其包含块。(行内元素的摆放方式并不直接依赖于包含块)由最近的块级祖先框、表单元格或行内块祖先框的内容边界构成。

  正常流:不在正常流中的唯一方法是使之称为浮动或定位元素

  非替换元素:元素的内容包含在文档中。

  替换元素:作为其他内容占位符的一个元素。比如img,和大多数表单元素。

  块级元素:正常流中元素前后会换行,垂直摆放。可以通过声明display:block获得。

    

      P.S:width影响的是内容区的宽度;Margin-left, border-left, padding-left, width, padding-right, border-right, margin-right这七个属性值加在一起必须是父元素包含块的宽度,通常是块级父元素的width。同理,heightwidth一样定义了内容区的高度而不是元素框的高度!!!! 

  行内元素:如strong, span等。前后不会自动生成行分隔符,是块级元素的后代。可以通过声明display:inline获得。

     匿名文本 

    em框:指示如果没有额外行间距设置是基线间的距离。(不一定指示字体中字符建立的任何边界,某种字体的字符可能比默认的基线间距要高)。 

        line-height控制的是文本行基线之间的距离,确定了将各个元素框的高度增加或减少多少 

    内容区:各字符的em框串在一起构成的框。替换元素的内容区是元素的固有高度加上可能的外边距边框内边距。 

    行间距:font-sizeline-height的值的差,分两半,半间距。行间距只应用于非替换元素。 

    行内框:通过向内容区增加行间距来描述。对于非替换元素,元素行内框的高度刚好等于line-height的值。对于替换元素,元素行内框的高度则恰好等于内容区的高度,因为行间距不应用到替换元素。 

    行框:包含该行中出现的行内框的最高点和最低点的最小框。 

  根元素:文档树顶端的元素。HTML文档中是html。

 

9. 内边距和边框

基本元素框:

  默认地,一个可以显示的文档由多个矩形框组成,将其分不开而不会相互重叠。限制尽可能少占空间,且保证有足够空间区分。(手工定位、负外边距可能会导致重叠)

宽度和高度:

  widthheight,不能应用到行内非替换元素。不设定高度时,高度由元素的内容来定。

内外边距:使用内外边距的三种组合在元素外围增加额外空间。在元素有背景时,不同组合效果会有不同,因为背景会延伸到内边距中,但不会延伸到外边距。为元素指定内外边距,不仅影响元素周围空间,还会影响元素的背景何时结束。

  外边距:

    大多数正常流之间出现的间隔都是因为存在元素外边距。(行内非替换元素上下间隔由行框决定,外边距可以影响其水平方向)。

    在元素外创建额外的空白,空白通常不能放其他元素的区域,且可以看到父元素的背景。

    

  内边距:

    不能为负!元素的背景延伸到其内边距到外边距。默认没有内边距。例如:段落之间的间隔传统上只有外边距保证。如果没有内边距,元素的边框会与元素本身的内容相当接近。内边距不会合并。可以使用内边距来分隔元素的内容区,但这可能比使用外边距更困难。

    

边框:

  宽度默认为medium,通常是2px。默认样式是None。(不存在的边框还会重置width的值)。

  边框和背景: 默认颜色是元素本身的前景色,如果元素没有任何文本,则时期父元素的文本颜色(因为color可以继承)。

   边框样式:border-style

    

  边框宽度:border-width

    

  边框颜色:border-color

    

  

 10. 颜色和背景

  前景色:color

    影响边框:color值还可以影响元素周围的边框。默认地,前景色会应用到边框,可以使用border-color属性覆盖。 

  Color无法影响到图像本身的颜色,但可以改变图像周围任何边框的颜色。(也就是说图像有前景色) 

影响表单元素:CSS1无法区分不同类型的input元素,所以要让不同类型的input元素有不同的颜色,就必须为他们分别指定不同的类。CSS2之后可以使用属性选择器。但许多用户代理不支持属性选择器。

继承元素:color是可以继承的。

   背景色:backgounrs-color为背景声明一个颜色。这个还可以接受一个使背景透明的关键字。

    

  背景图像:backgroun-image允许向任何元素应用背景图像,可以是块级元素也可以是行内元素。

    

    图片重复:backgroun-repeat

    背景定位:Background-position:

 

11. 浮动和定位

  允许定义元素框相对于其正常位置应该出现在哪里,或者相对于父元素,另一个元素,甚至浏览器窗口本身的位置。

  浮动:float;浮动元素将从文档的正常流中删除,其他内内容环绕该浮动元素。

    

  清除浮动:clear

     

  定位:position准确地定义元素框相对于其正常位置/父元素/另一个元/浏览器窗口本身的位置

    

    static: 元素框正常生成。块级--矩形框,行内-一个/多个行框,置于父元素中。

relative: 元素框偏移某个位置。仍保持其未定位前的形状,原本所占空间仍保留。

absolute: 元素框从文档流中完全删除,相对其包含块定位。生成一个块级框,而不论原来他在正常流中生成何种类型的框。

fixed: 与absolute类似,但是其包含块是视窗本身。

包含块:

  浮动元素的包含块定义为最近的块级祖先元素。

  定位元素的包含块

    根元素:由用户代理建立。html中是html元素,但有的浏览器视body为根元素。大多数浏览器,初始包含块是一个视窗大小的矩形。

    非根元素:relative/static---最近的块级框/表单元格/行内组先框的内容边界

        absolute---最近的非static祖先元素,根据该祖先元素的类型分类:

    块级祖先元素:其内边距边界,也即边框。

    行内元素:其内容边界。

posted @ 2019-03-20 14:06  张叉叉儿  阅读(438)  评论(0编辑  收藏  举报