资讯专栏INFORMATION COLUMN

CSS

andong777 / 2473人阅读

摘要:合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。定位一切皆为框或元素常常被称为块级元素。与之相反,和等元素称为行内元素,这是因为它们的内容显示在行中,即行内框。元素的位置通过以及属性进行规定。

基础概念

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

选择器的分组:用逗号将需要分组的选择器分开

h1,h2,h3,h4,h5,h6 {
  color: green;
  }

继承:通过 CSS 继承,子元素将继承最高级元素所拥有的属性。

派生选择器:通过依据元素在其位置的上下文关系来定义样式

li strong {
    font-style: italic;
    font-weight: normal;
  }

标签选择器没前缀,id选择器前缀为“#”,class选择器前缀为“.”

#sidebar p .content{}

CSS的创建,类别
1.外部样式表
当样式需要应用于很多页面时,外部样式表将是理想的选择。每个页面使用 标签链接到样式表。 标签在(文档的)头部



2.内部样式表
当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用

3.内联样式
当样式仅需要在一个元素上应用一次时。要使用内联样式,你需要在相关的标签内使用样式(style)属性。

This is a paragraph

4.多重样式
如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。

CSS样式

背景
1.background-imageurl(/i/eg_bg_03.gif)&url("~@/assets/images/zk_bs_icon.png")
2.background-repeat:repeat(默认属性,水平和垂直方向上重复) | repeat-x | repeat-y(指定方向上重复) | no-repeat(只显示一次,不重复)| inherit(继承父元素的 background-repeat 属性)
3.background-position:成对出现。相对父布局的上,左相对偏移。
4.background-size:percentage会让图片失真。cover是让图片按比例放大到最大,填充父布局。contain是让图片按比例放大,让图片在父布局内全部显示。
5.可以统一用background:background: url("~@/assets/images/zk_bs_icon.png") center center no-repeat;

文本
1.text-indent:首行缩进,针对块级元素,可能的值 length | % | inherit。p {text-indent:50px;}
2.text-align:只针对元素的内容,不影响元素。inherit属性不支持IE。
3.word-spacing:字间距。p {word-spacing:25px;}
4.letter-spacing:字母间隔。h1 {letter-spacing:2px}
5.text-transform:控制文本的大小写
6.white-space:处理元素中的空白符和换行符

字体
1.font-family:规定元素的字体系列。可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。逗号分隔,当字体名中有一个或多个空格(比如 New York),或者如果字体名包括 # 或 $ 之类的符号,需要在 font-family 声明中加引号。p {font-family: Times, TimesNR, "New Century Schoolbook", Georgia, "New York", serif;}
2.font-style:定义字体的风格,斜体、倾斜或正常字体。
3.font-weight:设置文本的粗细。
4.font-size:结合百分比和 EM 来设置文字大小。1em 等于当前的字体尺寸。如果一个元素的 font-size 为 16 像素,那么对于该元素,1em 就等于 16 像素。在设置字体大小时,em 的值会相对于父元素的字体大小改变。浏览器中默认的文本大小是 16 像素。因此 1em 的默认尺寸是 16 像素。为 body 元素(父元素)以百分比设置默认的 font-size 值:

body {font-size:100%;}
h1 {font-size:3.75em;}
h2 {font-size:2.5em;}
p {font-size:0.875em;}

连接样式
链接的四种状态:a:link - 普通的、未被访问的链接;a:visited - 用户已访问的链接;a:hover - 鼠标指针位于链接的上方a:active - 链接被点击的时刻。
当为链接的不同状态设置样式时,请按照以下次序规则:a:hover 必须位于 a:link 和 a:visited 之后。a:active 必须位于 a:hover 之后。

a:link {color:#FF0000;text-decoration:none;background-color:#B2FF99;}    // 字体颜色,去掉下划线,背景色    
a:visited {color:#00FF00;text-decoration:none;background-color:#B2FF99;}    
a:hover {color:#FF00FF;text-decoration:none;background-color:#B2FF99;}    
a:active {color:#0000FF;text-decoration:none;background-color:#B2FF99;}
CSS框模型

在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸。

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

margin:这个属性接受任何长度单位、百分数值甚至允许负值,auto(浏览器计算外边距)。可以按照上、右、下、左的顺序分别设置,百分数是相对于父元素的 width 计算的。
值复制:如果缺少左外边距的值,则使用右外边距的值。如果缺少下外边距的值,则使用上外边距的值。如果缺少右外边距的值,则使用上外边距的值。

h1 {margin: 0.25em 1em 0.5em;}    /* 等价于 0.25em 1em 0.5em 1em */
h2 {margin: 0.5em 1em;}        /* 等价于 0.5em 1em 0.5em 1em */
p {margin: 1px;}            /* 等价于 1px 1px 1px 1px */

外边框合并:外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者
注释:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

CSS定位

一切皆为框

div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。display属性规定元素应该生成的框的类型。

CSS定位机制

CSS 有三种基本的定位机制:普通流浮动绝对定位。除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。块级框从上到下一个接一个地排列。行内框在一行中水平布置。由一行形成的水平框称为行框(Line Box)。

position属性

1.static:没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
2.relative:生成相对定位的元素,相对于其正常位置进行定位。元素框偏移某个距离,它原本所占的空间仍保留(移动元素会导致它覆盖其它框)。因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。
3.absolute元素框从文档流完全删除。生成绝对定位的元素,相对于 static 定位以外的第一个父元素即包含块进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
4.fixed:元素框的表现类似于将 position 设置为 absolute,不过是相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
【提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。"left(定义了定位元素左外边距边界与其包含块左边界之间的偏移。)",所以具有float的功能。即:left:20,效果相当于float:left再偏移20。同理"top", "right" 以及 "bottom"** 属性】

CSS浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样(即不占空间)。在 CSS 中,我们通过 float 属性实现元素的浮动。

clear 属性:规定元素的哪一侧不允许其他浮动元素。

CSS 选择器

css 分组:假设希望 h2 元素和段落都有灰色:h2, p {color:gray;} .important,.warning {background:silver;}。逗号告诉浏览器,规则中包含两个不同的选择器。如果没有这个逗号,那么规则的含义将完全不同。CSS2 引入了一种新的简单选择器 - 通配选择器,显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。例如,下面的规则可以使文档中的每个元素都为红色:* {color:red;}

css 多类选择器:在 HTML 中,一个 class 值中可能包含一个词列表,各个词之间用空格分隔。例如,如果希望将一个特定的元素同时标记为重要(important)和警告(warning),就可以写作:

This paragraph

我们假设 class 为 important 的所有元素都是粗体,而 class 为 warning 的所有元素为斜体,class 中同时包含(类名的顺序不限) important 和 warning 的所有元素还有一个银色的背景 。就可以写作:.important.warning {background:silver;}不含空格,逗号是分组。

css 后代选择器:在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。比如,h1 em 选择器可以解释为 “作为 h1 元素后代的任何 em 元素”。【划重点:1.必须空格隔开;2.影响xx元素的所有后代,不管嵌套层次多深。】

css 子元素选择器:与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素(第一个)的元素。子结合符两边可以有空白符也可以没有,这是可选的。

css 相邻兄弟选择器:相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。
1.相同的父元素;
2.紧挨着的两个元素;
3.只会改变其兄弟(后面)的元素样式。
相邻兄弟选择器使用了加号(+),相邻兄弟结合符旁边可以有空白符也可以没有。

  • List item 1
  • List item 2
  • List item 3
  1. List item 1
  2. List item 2
  3. List item 3

css 伪类:css 伪类用于向某些选择器添加特殊的效果。
语法:1.伪类的语法:selector : pseudo-class {property: value};2.CSS 类也可与伪类搭配使用:selector.class : pseudo-class {property: value}

a:link {color: #FF0000}        /* 未访问的链接 */
a:visited {color: #00FF00}    /* 已访问的链接 */
a:hover {color: #FF00FF}    /* 鼠标移动到链接上 */
a:active {color: #0000FF}    /* 选定的链接 */
a.red : visited {color: #FF0000}
CSS Syntax

css 伪元素:css伪元素用于向某些选择器设置特殊效果。
语法:1.伪元素的语法:selector:pseudo-element {property:value;};2.CSS 类也可以与伪元素配合使用::selector.class:pseudo-element {property:value;}

CSS 高级

css 对齐
1.使用 margin 属性来水平对齐:把左和右外边距设置为 auto,规定的是均等地分配可用的外边距(IE8 以及更早的版本中是无效的)。
2.使用 position 属性进行左和右对齐:position:absolute;right:0px;
3.使用 float 属性来进行左和右对齐

透明属性
IE9, Firefox, Chrome, Opera 和 Safari 使用属性 opacity 来设定透明度。opacity 属性能够设置的值从 0.0 到 1.0。值越小,越透明。IE8 以及更早的版本使用滤镜 filter:alpha(opacity=x)。x 能够取的值从 0 到 100。值越小,越透明。如果没效果:background: rgba(0, 0, 0, 0.6);

img
{
opacity:0.4;
filter:alpha(opacity=40); /* 针对 IE8 以及更早的版本 */
}

css2 媒介类型
媒介类型(Media Types)允许你定义以何种媒介来提交文档。文档可以被显示在显示器、纸媒介或者听觉浏览器等等。@media 规则使你有能力在相同的样式表中,使用不同的样式规则来针对不同的媒介。下面这个例子中的样式告知浏览器在显示器上显示 14 像素的 Verdana 字体。但是假如页面需要被打印,将使用 10 个像素的 Times 字体。注意:font-weight 被设置为粗体,不论显示器还是纸媒介:








....

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/117118.html

相关文章

  • [译]148个资源让你成为CSS专家

    摘要:层叠样式表二修订版这是对作出的官方说明。速查表两份表来自一份关于基础特性,一份关于布局。核心第一篇一份来自的基础参考指南简写速查表简写形式参考书使用层叠样式表基础指南,包含使用的好处介绍个方法快速写成高质量的写出高效的一些提示。 迄今为止,我已经收集了100多个精通CSS的资源,它们能让你更好地掌握CSS技巧,使你的布局设计脱颖而出。 CSS3 资源 20个学习CSS3的有用资源 C...

    impig33 评论0 收藏0
  • 简单易懂的CSS Modules

    摘要:结果是选手获胜,名为的元素,最终的值为。而合理的命名约定,的确是组织代码的有效策略。它们会再由转换为适当的组合。虽然本文为了严谨,结果写了相当长的篇幅,但希望你读过之后,还能觉得是简单易懂的。 不要误会,CSS Modules可不是在说css模块化这个好像在某些地方见过的词,它其实是特指一种近期才出现的技术手段。 什么技术手段呢?请待后文说明。 层叠样式表 我们知道,css的全名叫做层...

    chunquedong 评论0 收藏0
  • CSS Modules实践

    摘要:能最大化地结合现有生态预处理器后处理器等和模块化能力,几乎零学习成本。编码相关的所有样式上例中打印的结果是注意到是按照自动生成的名。实践手动引用渲染结果使用可以实现使用属性自动加载模块。 文章同步于Github Pines-Cheng/blog 随着前端这几年的风生水起,CSS作为前端的三剑客之一,各种技术方案也是层出不穷。从CSS prepocessor(SASS、LESS、Styl...

    hankkin 评论0 收藏0
  • 【译】编写更好的CSS必备的40个工具

    摘要:一个叫的人用纯重绘并模拟了种不同的移动设备包括可以给你的网站添加不相关的独立组件的一个库。每一个组件都是针对移动设备定制的,并且它有很多你在传统的框架中看不到的功能。如果你用开发移动优先的网站,并想要网站正常运行在低版本的上,可以考虑。 众所周知,CSS是非常棒的,它使网站看起来很漂亮,可以为网站添加动画,并让呈现和内容分离。去了解CSS的一切是非常难做到的,它只会变得更加困难,因为我...

    moven_j 评论0 收藏0
  • SegmentFault 技术周刊 Vol.38 - 神奇的 CSS

    摘要:层叠即表示允许以多种方式来描述样式,一个元素可以被渲染呈现出多种样式。可以让属性的变化过程持续一段时间,而不是立即生效。比如,将元素的颜色从白色改为黑色,通常这个改变是立即生效的,使用后,将按一个曲线速率变化。 showImg(https://segmentfault.com/img/bVZwyL?w=900&h=385); CSS 的全称是 Cascading Style Sheet...

    elliott_hu 评论0 收藏0
  • CSS Modules详解及React中实践

    摘要:上例中打印的结果是对中的名都做了处理,使用对象来保存原和混淆后的对应关系。结合实践在处直接使用中名即可。如因为只会转变类选择器,所以这里的属性选择器不需要添加。 showImg(http://gtms01.alicdn.com/tps/i1/TB15w0HLpXXXXbdaXXXjhvsIVXX-600-364.png); CSS 是前端领域中进化最慢的一块。由于 ES2015/201...

    wemall 评论0 收藏0

发表评论

0条评论

andong777

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<