CSS的一些零碎总结

1、CSS 伪元素用于向某些选择器设置特殊效果(用来当作一个东西的,跟一个元素差不多,但不是元素)。

① :frist-line伪元素:用于向文本首行设置特殊样式,但是只能用于块级元素。

以下属性可应用于 “ frist-line ” 伪元素:
        font、color、background、word-spacing、letter-spacing、text-decoration、vertical-align、text-transform、line-height、clear 。

② :first-letter伪元素:用于向文本首字母设置特殊样式,只能用于块级元素。

以下属性可应用于 “ first-letter ” 伪元素:
        font、color、background、margin、padding、border、text-decoration、vertical-align(仅当float为none时)、text-transform、line-height、float、clear 。

③ 伪元素和css类可以配合使用:p.article: first-letter { },可以使所有 class 为 article 的段落的首字母样式改变 。

④ 多重伪元素:可以结合多个伪元素来使用。p: first-letter { },p: first-line { }:段落的第一个字母根据p: first-letter具体样式显示,第一行其余文本根据p: first-line具体样式显示,段落中其余文本以具体段落设置的其他样式显示。

⑤ :before伪元素:可以在元素内容前面插入新内容 。

⑥ :after伪元素:可以在元素的内容之后插入新内容 。

⑦ 许多人喜欢给 blockquote 引用段添加巨大的引号作为背景,这种时候我们就可以用 :before 来代替 background 了,既可以给背景留下空间,还可以直接使用文字而非图片:

    blockquote::before {
        content: open-quote;
        position: absolute;
        z-index: -1;
        color: #DDD;
        font-size: 120px;
        font-family: serif;
        font-weight: bolder;
    }

⑧ 清除浮动:

.clear-fix { *overflow: hidden; *zoom: 1; }
.clear-fix:after { display: table; content: ""; width: 0; clear: both; }

2、CSS 伪类用于向某些选择器添加特殊的效果(用来选择的)

① :active:向被激活的元素添加样式

② :focus:向拥有键盘输入焦点的元素添加样式

③ :hover:当鼠标悬浮在元素上方时,向元素添加样式

④ :link:向未被访问的链接添加样式

⑤ :visiter:向已被访问的链接添加样式

⑥ :first-child:向元素的第一个子元素添加样式

⑦ :lang:向带有指定lang属性的元素添加样式,使你有能力为不同的语言定义特殊的规则:

q:lang(no)
   {
   quotes: "~" "~"
   }
 
<p>文字<q lang="no">段落中的引用的文字</q>文字</p>

3、解决塌陷,清除浮动

① 添加空元素

经典的解决方法,就是在浮动元素下方添加一个非浮动元素。
代码这样写:

<div>
<div style="float:left;width:45%;"></div>
<div style="float:right;width:45%;"></div>
<div style="clear:both;"></div>
</div>

原理是父容器现在必须考虑非浮动子元素的位置,而后者肯定出现在浮动元素下方,所以显示出来,父容器就把所有子元素都包括进去了。这种方法比较简单,但是要在页面中增加冗余标签,违背了语义网的原则。

② 浮动的父容器

另一种思路是,索性将父容器也改成浮动定位,这样它就可以带着子元素一起浮动了。

<div style="float:left;">
<div style="float:left;width:45%;"></div>
<div style="float:right;width:45%;"></div>
</div>

这种方法不用修改HTML代码,但是缺点在于父容器变成浮动以后,会影响到后面元素的定位,而且有时候,父容器是定位死的,无法变成浮动。
③ 浮动元素的自动clearing
让父容器变得可以自动"清理"(clearing)子元素的浮动,从而能够识别出浮动子元素的位置,不会出现显示上的差错。
要做到这点,只要为父容器加上一条"overflow: hidden"的CSS语句就行了。代码这样写:

<div style="overflow: hidden;">
<div style="float:left;width:45%;"></div>
<div style="float:right;width:45%;"></div>
</div>

这种方法的缺点主要有二个,一个是IE 6不支持,另一个是一旦子元素的大小超过父容器的大小,就会出显示问题。

④ 通过CSS语句添加子元素呢,这样就不用修改HTML代码

.clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
}
.clearfix {
zoom: 1;
}

"clearfix"是父容器的class名称,"content:"020";"是在父容器的结尾处放一个空白字符,"height: 0;"是让这个这个空白字符不显示出来,"display: block; clear: both;"是确保这个空白字符是非浮动的独立区块。添加一条IE 6的独有命令"zoom:1;"就行了,这条命令的作用是激活父元素的"hasLayout"属性,让父元素拥有自己的布局。IE 6会读取这条命令,其他浏览器则会直接忽略它。

4、什么情况下hidden不起作用

position设置成fixed,overflow的hidden不起作用。

5、css盒子模型,问的是border、padding、margin三个属性如何作用在一个块级元素上?

一个盒子的宽度 = border + padding + width(content内容的宽度)。

我想给一个给一个盒子加一个宽度,然后再加一个padding,但是这个盒子原本的宽度不改变,也就是说,width的值没有改变,且不会因为加了padding而往外扩增,该如何做?
有两种方式:

① 当一个块元素没有设置width时,这个盒子的宽度是默认填充父元素的宽度,这时随便给这个块元素加padding都是向内扩展的,不会向外扩展。

② border-sizing: content-box / border-box / inherit ;

content-box:宽度和高度分别应用到元素的内容框,在宽度和高度之外绘制元素的内边距和边框。

border-box:为元素设定的宽度和高度决定了元素的边框盒,就是说,用border的宽度来指代width,把加上border、padding之后的宽度,用width强行给限制住,然后宽度也就会变成向内扩展。

inherit:规定应从父元素继承 box-sizing 属性的值。

6、关于字体的,说一下rem这个单位(移动端),(产生和设置)

em是相对于父元素的font-size,rem是相对于根元素的font-size。

rem的补充:

① 对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小;

② IE9/IE10在用于伪元素时或者使用字体简写声明时不支持rem;

③ IOS Safari5.0-5.1虽然支持rem,但是在使用媒体查询时不支持rem。

7、如何在css代码里提升代码的优先级?
a { color:red;} 用什么方法覆盖掉? 解决:

① body a { color:red;}
优先级计算公式:标签=1,id=100,class=10,加起来就是他的优先级。

② 在color后面加一个!important,强行将优先级提升到最大。

③ !important提升指定样式规则的应用优先权。

8、有两个CSS语句能起到隐藏节点的作用visibility和display

(1)visibility

规定了元素是否可见,即使不可见也会占用上面的空间,在这里就是在指它与display的不一样了。

(2)display

这个属性用于定义建立布局时元素生成的显示框类型。对于 HTML 等文档类型,如果使用 display 不谨慎会很危险,因为可能违反 HTML 中已经定义的显示层次结构。对于 XML,由于 XML 没有内置的这种层次结构,所有 display 是绝对必要的。

(3)对比:

相同点:都有相同的功能就是隐藏。

不同点:当我们定义了display后,在渲染树中不会引擎是不会去构建这个框的。而visibility当我们使它隐藏的时候,他在渲染树中会构建,只是不去渲染。这也就是W3c上面所说的不可见会占空间的原因。他们两者在优化中visibility会显得更好,因为我们不会因为它而去改变了文档中已经定义好的显示层次结构了。

[转载自http://www.cnblogs.com/xsilence/p/6050412.html]

时间: 2024-08-03 17:33:58

CSS的一些零碎总结的相关文章

css 的小细节,小总结

CSS的一些零碎总结 1.CSS 伪元素用于向某些选择器设置特殊效果(用来当作一个东西的,跟一个元素差不多,但不是元素). ① :frist-line伪元素:用于向文本首行设置特殊样式,但是只能用于块级元素. 以下属性可应用于 " frist-line " 伪元素:         font.color.background.word-spacing.letter-spacing.text-decoration.vertical-align.text-transform.line-he

HTML+css零碎小知识

1.设置了float浮动的元素和绝对定位position:absolute的元素会脱离正常的文档流.但是设置absolute的元素不会占据空间,相当于隐形了. 2.相对定位position:relative是指相对于文档流中的其它已经定义的元素位置进行定位.在不设置top/left/right/bottom/Z-index等值的情况下和默认值static表现一样. 3.绝对定位position:absolute是相对于上一个不为static默认定位的父元素进行绝对定位.若父元素没有指定posit

Vue项目零碎知识(全局js,css配置,element-UI,bs使用, img动态配置,js数组)

全局css样式,首先在静态assets中写好文件,然后要在main.js中配置 // 配置全局css样式 // import '@/assets/css/global.css' require('@/assets/css/global.css') //上面两种都可以实现全局样式的导入,但是第二种容错率较好,更健壮,比较常用,第一种对环境要求比较高 全局js样式,也是首先要在静态assets文件中写好,然后再main.js中进行配置 // main.js //配置全局settings.js imp

css零碎合集

alt和title 我们都用过img标签,相信也都知道有title和alt这两个属性,笔试时有时会考到,在这里简单记录一下,主要是怕混淆. alt:是当图片不能正确加载出来,进而显示的文字(图2) title:是当鼠标悬停在图片上,出现的提示文字.(图1) <img src="img/12.png" alt="图片未能加载出来" title="这是一张图片"/> 图1 当我们把图片的路径换为错误的路径时. 图2

CSS块级元素、内联元素概念

CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>,发现里面提到的文档流概念让我很敏感. 可恶的是书中并没有解释文档流是什么东西,或许作者觉得这个太简单了以至于不值一提.但我觉得,这个概念实在太重要了.理解了它,一堆CSS布局的理论都变得易于理解,并且体会到CSS这套设计的合理性所在. 文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即

关于css的几个小知识点总结

css 深入学习css之后会发现需要记忆的东西有很多,知识点也很零碎,在此记录几个比较常见的有点难度的知识点 zoom=1 :IE 浏览器的专有属性,解决ie下比较奇葩的bug.如外边距(margin)的重叠,浮动的清除,ie的haslayout属性等. zoom定义:设置或检索对象的缩放比例.设置或更改一个已被传递的对象的此属性值将导致环绕对象的内容重新流动. 例子: 伪类:after : 清除浮动: http://www.jb51.net/css/173023.html css继承性和层叠性

【CSS进阶】伪元素的妙用2 - 多列均匀布局及title属性效果

最近无论是工作还是自我学习提升都很忙,面对长篇大论的博文总是心有余而力不足,但又不断的接触学习到零碎的但是很有意义的知识点,很想分享给大家,所以本篇可能会很短. 本篇接我另一篇讲述 CSS 伪元素的文章: [CSS进阶]伪元素的妙用–单标签之美,看完本文觉得有意思的可以再去看看上一篇,分享了一些伪元素的妙用. 正文从这里开始: 哪些标签不支持伪元素? 我也是才知道这个姿势.为了不误导读者,就赶紧补充一下. 伪元素虽然强大,但是还是有一些特定的标签是不支持伪元素 before 和 after 的.

关于前端一些零碎的知识.

1.严格模式和混杂模式 1)严格模式, 排版和JS运作模式以 当前浏览器的最高标准运行, 也就是说低版本浏览器会给你造成想象不到的别的效果. 2)混杂模式, 页面以宽松的的向后兼容的模式显示, 可以模拟老式浏览器行为防止 当前网页所在的站点无法工作. 总是可以让用户有信息可以获得. 3)这两种模式区分在于<DOCTYPE ...> 是否存在以及格式是否正确, 如果顶部没有的话, 或者格式不正确也会导致文档以 混杂模式呈现. 2.那些行内元素和块元素, 还有的是空元素. css规范有云, 每个元

css 雪碧图 及jquery定位代码

无意间发现了一个很神奇的事情,就是 鼠标悬停在图片上方会切换,起初以为图标是单独插入的.但发现居然是一张完整的图片. 一万只草泥马在心中奔腾.这是怎么实现的? 后来询问得知,这是css精灵技术(sprite) 也叫雪碧图. CSS知识点: background-image backgorund-position 特点: 相对于当个小图标,它节省文件体积和服务请求次数.将所有零碎的网页背景图片整合到一起,这样做可以有效的减少http对图片的请求次数,而不需要加载多次加载零碎的背景图片,所以合理的利