css学习归纳总结(二) 转

原文地址:css学习归纳总结(二)

标签与元素

<p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别。<p><div>等指的是HTML分隔符,而元素则是由一对开始结束标签构成的,用来包含某一些内容

子选择器和后代选择器的区别:

后代选择器的写法就是把外层的标记写在前面,内层的标记写在后面,之间用空格分隔。
子选择器只对直接后代有影响的选择器,而对“孙子后代”以及多层后代不产生作用。

注意:在IE6中,只支持后代选择器,不支持子选择器

链接伪类

a:link {color: black}     /* 未访问的链接 */
a:visited {color: blue}  /* 已访问的链接 */
a:hover {color: red}    /* 当有鼠标悬停在链接上 */
a:active {color: purple}   /* 被选择的链接 */

为了产生预期的效果,在 CSS 定义中,a:hover 必须位于 a:linka:visited 之后!a:active 必须位于 a:hover 之后!!

:after和:before伪元素

“伪元素”,顾名思义。它创建了一个虚假的元素,并插入到目标元素内容之前或之后。
伪元素如果没有设置“content”属性,伪元素是无用的。

插入的元素默认情况下是内联元素,如果你要为其设置宽高等属性,你需要将他定义为块级元素

#element:before{
    content : "";
    display : ‘block‘
    height : 1000px;
    width : 1000px;
}

注入的内容将是有关联的目标元素的子元素,但它会被置于这个元素的任何内容的“前”或“后”。

web标准的构成

1.结构:用来对网页中的信息进行整理与分类,常用的技术有:HTML,XHTML,XML
2.表现:用于对已经被结构化的信息进行显示上的修饰,主要技术就是CSS
3.行为:是指对整个文档内部的一个模型进行定义及交互行为的编写;主要技术有:Javascript

那么如何让关键选择器更有效,性能化更高呢?其实很简单,主要把握一点“越具体的关键选择器,其性能越高”

cellpadding与cellspacing

cellpadding(表格填充) -- 代表单元格外面的一个距离,用于隔开单元格与单元格空间
cellspacing(表格间距) -- 代表表格边框与单元格补白的距离,也是单元格补白之间的距离

css的三性

CSS叠加性:同一个元素被多条样式规则指定。
CSS继承性:后代元素会继承前辈元素的一些样式和属性。
CSS优先级:由于CSS的叠加性和继承性,将产生优先级,这指的是哪条样式规则会最终作用
于指定的元素,他只遵循一条规则,指定的越具体,优先级越高

浏览器读取你的选择器,遵循的原则是从选择器的右边到左边读取。换句话说,浏览器读取选择器的顺序是由右到左进行

并非所有css属性都具有继承性,那么,哪些属性具有继承性呢?

1.文本相关属性是继承的:font-family,font-size,line-height,font-weight,font-style,text-transform
2.列表相关属性是继承的:list-style,list-style-image,list-style-position
3.颜色相关属性是继承的:color

无继承的属性:

1.所有背景属性,盒子属性,布局属性

我们在ul下设置color属性,并不会使ul>li>a下的a的字体发生样式的改变,但会使li下的字体样式发生改变

background属性

background:background-color ||background-image || background-repeat || background-attachment || background-position||background-size

background-image:url("图片的网址"); 背景图
background: url(" 图片的网址 "); 背景
background-color:#色码; 背景色彩
background-position:默认值:0%  0%,可能值:top left ,center left等
background-repeat:默认值:repeat
scroll 拉动卷轴时,背景图片会跟着移动(缺省值)
fixed 拉动卷轴时,背景图片不会跟着移动
repeat 背景图片并排
background-size:是css3规定的属性,50%为缩放图片;100px 50px:把图片调整到100像素宽,50像素高;cover:拉大图片,使其完全填满背景区;container:缩放图片,使其恰好适合背景区

background-position:X坐标 Y坐标

各浏览器默认的css样式

地址:http://www.iecss.com/

伪类与伪元素选择符

伪类选择符

伪元素选择符

常用css hack技巧

地址:http://www.css88.com/book/css/hack/index.htm

IE条件注释法:
01.只在IE下生效

<!-- [if IE]>
<link type="text/css" href="text.css" rel="stylesheet" />
<![endif] -->

02.只在IE6下生效

<!-- [if IE 6]>
<link type="text/css" href="text.css" rel="stylesheet" />
<![endif] -->

css整理与优化工具

地址:http://www.css88.com/tool/csstidy/

css的缩写

font缩写

缩写前
element{
    font-style:italic //设置或检索对象中的字体样式
    font-variant:normal //设置或检索对象中的文本是否为小型的大写字母
    //前2项如果没有特殊设置,可以不写,用默认值即可
    font-weight:bold;
    font-size:12px;
    line-height:20px;
    font-family:"宋体";
}

缩写后
element{
    font:bold 12px/20px "宋体";
    //属性依次为:字体的粗细 - 字体大小/行高 - 文本的字体
}

background的缩写

缩写前
element{
    background-color:#ccc;
    background-image:url(sample.gif);
    background-repeat:repeat-x;
    background-attachment:scroll;//scroll是背景图像随对象内容滚动为默认值,可以不写
    background-position:top right;
}
缩写后
element{
    background:#ccc url(sample.gif) repeat-x top right;
    //属性依次为:颜色-背景图-X轴平铺-背景图像位置(背景图片路径不需要加引号)
}

css超出 自动换行

只针对单行文本有效;

01.针对块状元素
ul li{
    width: 180px;
    text-overflow: ellipsis;/*超出部分显示省略号*/
    white-space: nowrap;/*禁止自动换行*/
    overflow: hidden;
}

02.针对table
table{
    table-layout:fixed;
}
table td{
    word-break:keep-all;/* 不换行 */
    white-space:nowrap;/* 不换行 */
    overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
    text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/
}

css-常用reset

1.body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,tr,td,var {margin:0;padding:0; font-size:12px;} 

2.table {border-collapse:collapse;border-spacing:0;} 

3.fieldset,img {border:none} 

4.address,caption,cite,code,dfn,em,strong,th {font-style:normal;font-weight:normal} 

5.ol,ul {list-style:none} 

6.caption,th,td{text-align:center} 

7.h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal} 

8.q:before,q:after {content:‘‘} 

9.abbr,acronym { border:0}

注:

code - 计算机代码(在引用源码的时候需要)
dfn - 定义字段
acronym - 首字
abbr - 缩写
u - 下划线
var - 定义变量

浮动与清除浮动 clear

对内联元素设置floatabsolute属性,可以让元素脱离文档流,并且可以设置其宽高。

  • float: left的元素会尽量靠近父元素的左上角
  • float: right的元素会尽量靠近父元素的右上角
    
    /*======万能Float闭合======*/
    .clear:after {
        content: ".";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }
    .clear {display: inline-block;} /* for IE/Mac */
    .clear {
        zoom: 1; /* triggers hasLayout */
        display: block; /* resets display for IE/Win */
    }
    /*======万能Float闭合3======*/
    .clear{
     height:0px;
     clear:both;
     font-size:0px;
     line-height:0px;
     zoom: 1;
    }
    

浮动框可以左右移动,直到它的外边缘碰到包含框或另一个浮动框的边缘。因为浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

编写更好的 css

避免过度约束

作为一般规则,不添加不必要的约束。

// 糟糕
ul#someid {..}
.menu#otherid{..}

// 好的
#someid {..}
#otherid {..}

后代选择符最烂

不仅性能低下而且代码很脆弱,html代码和css代码严重耦合,html代码结构发生变化时,CSS也得修改,这是多么糟糕,特别是在大公司里,写htmlcss的往往不是同一个人。

// 烂透了
html div tr td {..}

尽可能使用复合语法

// 糟糕
.someclass {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 10px;
padding-right: 10px;
background: #000;
background-image: url(../imgs/carrot.png);
background-position: bottom;
background-repeat: repeat-x;
}

// 好的
.someclass {
padding: 20px 10px 20px 10px;
background: #000 url(../imgs/carrot.png) repeat-x bottom;
}

避免不必要的重复

// 糟糕
.someclass {
color: red;
background: blue;
font-size: 15px;
}

.otherclass {
color: red;
background: blue;
font-size: 15px;
}

// 好的
.someclass, .otherclass {
color: red;
background: blue;
font-size: 15px;
}

组织好的代码格式

代码的易读性和易维护性成正比。下面是我遵循的格式化方法。

// 糟糕
.someclass-a, .someclass-b, .someclass-c, .someclass-d {
...
}

// 好的
.someclass-a,
.someclass-b,
.someclass-c,
.someclass-d {
...
}

// 好的做法
.someclass {
    background-image:
        linear-gradient(#000, #ccc),
        linear-gradient(#ccc, #ddd);
    box-shadow:
        2px 2px 2px #000,
        1px 4px 1px 1px #ddd inset;
}

div>ul>li>a 结构

结构为:div>div>ul>li>a div与div默认是重合在一起的,为了作区分,第二个div弄了个margin :5px 的间距

在谷歌和火狐浏览器下,divul的默认顶底部间距为20px,ul始终包裹着li,ul的高度由li撑起,块级元素的宽度默认为浏览器宽度。li距离ul左边有一小段间距,用来存放无序列表的小圆点(这里设置了 list-style :none )。

定义一张图片也要为其设置宽高属性,否则无法进行定位设置,同理,很多元素必须设置其宽高属性才能进行定位

块级元素盒子会扩展到与父元素同宽,所有块级元素的父元素都是body,而它的宽度默认与浏览器窗口一样宽(当然有少量边距)。因为块级元素始终与浏览器窗口同宽。这样一来,一个块级元素旁边也就没有空间容纳另一个块级元素了。

如何居中一个浮动元素

方法一

设置容器的浮动方式为绝对定位
然后确定容器的宽高 比如宽500 高 300 的层
然后设置层的外边距

 div{
        width:500px;
        height:300px;
        margin:-150px 0 0 -250px;
        position:absolute;
        left:50%;
        top:50%;
        background-color:#000;
}

方法二

父元素和子元素同时左浮动,然后父元素相对左移动50%,再然后子元素相对右移动50%,或者子元素相对左移动-50%也就可以了。

<!DOCTYPE html><html><head>
    <title>Demo</title>
    <meta charset="utf-8"/>
    <style type="text/css">
        .p{
            position:relative;
            left:50%;
            float:left;
        }
        .c{
            position:relative;
            float:left;
            right:50%;
        }
    </style></head><body>
    <div class="p">
        <h1 class="c">Test Float Element Center</h1>
    </div>
</body>
</html>
时间: 2024-12-17 17:57:07

css学习归纳总结(二) 转的相关文章

css学习归纳总结

来源于:trigkit4 css学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00; } 3.属性选择器 如: p[title] { color:#f00; } 4.包含(后代)选择器 如:body ul li{} 5.子元素选择器 如:div > p{} 6.ID选择器 如:#myDiv{} 7.类选择器 如:.class1{} 8.伪元素选择器 如:E:first-line,

css学习归纳总结(一) 转

原文地址:CSS学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00; } 3.属性选择器 如: p[title] { color:#f00; } 4.包含(后代)选择器 如:body ul li{} 5.子元素选择器 如:div > p{} 6.ID选择器 如:#myDiv{} 7.类选择器 如:.class1{} 8.伪元素选择器 如:E:first-line,E:before

CSS学习(十二)-文本换行符

一.理论: 1.word-wrap: a.normal 在半角空格或连字符的地方进行换行 b.break-word 不截断英文单词换行 2.word-break: a.normal 中文到边界上的汉字换行,英文从整个单词换行 b.break-all 强行截断英文单词换行 c.keep-all 不允许字断开 3.while-space: a.normal 默认值 b.pre 文本空白处会被浏览器扣留 c.nowrap 文本会在同行上直到遇到换行符 d.pre-line 合并空白符序列,保留换行符

CSS学习总结(二)

一.id及class选择符 id和class的名称是由用户自定义的.id号可以唯一地标识html元素,为元素指定样式.id选择符以#来定义. 1.id选择符   注:在网页中,每个id名只能是唯一不重复的. <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> #title2{ /*#后的是id名称*/ b

CSS学习笔记(二):特性

一.颜色特性 1. 前景色:color 用种方式指定前景色,3种方式分别是rgb颜色,#16进制编码,颜色名称: color: rgb(100,100,100); color: #ee3e80; color: DarkCyan 2. 背景色:background-color 3. 透明度:opacity,rgba color: rgba(0,0,0,0.5); 或 opacity: 0.5; 4. HSL颜色和HSLA: HSL颜色的三个属性值为色调(0~360),饱和度(百分数),明度(百分数

CSS学习(二)—浮动

一. 定义 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 解决的问题:"如何在一行显示多个div元素" 二. 浮动与不浮动区别 图1 图2 区别 不浮动的框是由上往下独占一行的,而浮动的框是紧靠着排列的.图2中d1.d2.d3都是向左浮动的,所以先把d1放在紧靠着父框摆放,然后把d2紧靠着d1摆放,最后d3紧靠着d2摆放.向右浮动亦与之类似. 语法: float : none | left |right 参数: none : 对象不浮动 left :

前端学习(十二):CSS排版

进击のpython 前端学习--CSS排版 本节主要介绍网页排版中主要格式化元素属性 帮助开发者把css技术与网页排版紧密联系到一起,来更好的实现网页设计效果 字体属性 字体 在日常工作中,我们会用到word来编写内容,比如可以对我们需要设置的内容设置字体.字号.颜色等设置 那么我们在网页中使用css样式时,同样也能做相关的设置 那我们可以试着为网页中的文字设置字体为微软雅黑 body{font-family:'微软雅黑'} 这里要注意不要设置不常用的字体,比如你给我来个'菲律宾体' 因为如果用

Java学习总结(二十四)——前端:CSS样式设计(CSS引入,选择器,盒子模型,浮动元素)

一.CSS引入方式1.CSS简介:(1)CSS(Cascading style Sheets):层叠样式表.用来给html网页设置样式;(2)当多个选择器对同一个元素进行样式设计时,则该元素的样式为多个选择器叠加的效果(当有冲突时,按照优先级设置);2.引入方式:(1)方式一:行内样式(在html元素的style属性上设置样式)(2)方式二:页面内嵌样式(在head标签内部嵌入样式)(3)方式三:引入外部样式文件例1(演示CSS三种引入方式):Html代码: <!DOCTYPE html> &

CSS学习之float解析

转自:http://www.w3cplus.com/css/float.html 一.float是什么? float即为浮动,在CSS中的作用是使元素脱离正常的文档流并使其移动到其父元素的“最左边”或“最右边”.下面解释下这个定义中的几个名词的概念: 文档流:在html中文档流即为元素从上至下排列的顺序. 脱离文档流:元素从正常的排列顺序被抽离. 最左边/最右边:上述的移动到父元素最左和最右是指元素往左或往右移动直到碰到另一个浮动元素或父元素内容区的边界(不包括padding). 二.float