Normalize.css
Normalize.css
是一种CSS reset的替代方案。它在默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。
html
html 标签
知乎总结的html tags
html一共有114个标签,但html5有添加了一些标签,如nav、header、article、section、aside、footer等。
闭合标签
闭合标签的基本格式如下:
<标签名>文本内容标签名>
可以给这个标签添加一些属性,比如:
<标签名 属性_1="属性值" 属性_2="属性值">文本内容标签名>
标题、段落等文本元素都要求闭合标签,也就是要有一个开标签和一个闭标签,比如:
Words by Dogsworth
I wandered lonely as a dog.
引用内容用自闭合标签
<标签名 属性_1="属性值" 属性_n="属性值" />
非文本内容是通过自闭合标签显示的。闭合标签与自闭合标签的区别在于,闭合标签包含的是会显示的实际内容,而自闭合标签只是给浏览器提供一个对要显示内容的引用。
<标签名 属性_1="属性值" 属性_n="属性值" />
块级元素和行内元素
** 块级元素盒子会扩展到与父元素同宽**
块级标签
-:6级标签,表示最重要
:段落
:有序列表
- :列表项
:独立引用
行内元素盒子会“收缩包裹”其内容,并且会尽可能包紧。
行内标签:
:链接(anchor,锚)
:图片
:斜体
:重要
:简写
:引证
:文本内引用
css
- 行内样式
- 嵌入样式
- 链接样式
This paragraph simply takes on the browser's default paragraph style.
By adding inline CSS styling to this paragraph, you override the default styles.
CSS规则分两部分,即选择符和声明。声明又由两部分组成,即属性和值。声明包含在一对花括号内。
图中文字:selector:选择符;declaration:声明;property:属性;value:值;opening curly bracket:左花括号;closing curly bracket:右花括号。
对这个基本的结构,有三种方法可以进行扩展。
第一种方法:多个声明包含在一条规则里。
p {color:red; font-size:12px; font-weight:bold;}
这样,一条规则就可以把段落文本设置成红色,12像素大,粗体。
第二种方法:多个选择符组合在一起。如果想让h1、h2和h3的文本都变成蓝色,粗体,可以这样分别写:
h1 {color:blue; font-weight:bold;}
h2 {color:blue; font-weight:bold;}
h3 {color:blue; font-weight:bold;}
但其实,把三个选择符组合在一起也可以,这样就能减少重复输入:
h1, h2, h3 {color:blue; font-weight:bold;}
千万注意每个选择符之间要用逗号分隔(最后一个后面不用加)。
第三种方法:多条规则应用给一个选择符。 假设,你在写完前面那条规则后,又想只把h3变成斜体,那可以再为h3写一条规则:
h1, h2, h3 {color:blue; font-weight:bold;}
h3 {font-style:italic;}
选择符分类
用于选择特定元素的选择符又分三种。
- 上下文选择符。基于祖先或同胞元素选择一个元素。
- ID和类选择符。基于id和class属性的值(你自己设定)选择元素。
- 属性选择符。基于属性的有无和特征选择元素。
上下文选择符
上下文选择符的格式如下:
标签1 标签2 {声明}
上下文选择符,严格来讲(也就是CSS规范里),叫后代组合式选择符(descendant combinator selector),就是一组以空格分隔的标签名。用于选择作为指定祖先元素后代的标签。
article p {font-weight:bold;}
这个例子中的上下文选择符表明,只有是article后代的p元素才会应用后面的样式。换句话说,上面这条规则的目标是位于article上下文中的p元素。
特殊的上下文选择符
-
子选择符>
标签1 > 标签2标签2必须是标签1的子元素,或者反过来说,标签1必须是标签2的父元素。与常规的上下文选择符不同, 这个选择符中的标签1不能是标签2的父元素之外的其他祖先元素。
section > h2 {font-style:italic;}
-
紧邻同胞选择符+
标签1 + 标签2
标签2必须紧跟在其同胞标签1的后面。h2 + p {font-variant:small-caps;}
-
一般同胞选择符~
标签1 ~ 标签2标签2必须跟(不一定紧跟)在其同胞标签1后面。
h2 ~ a {color:red;}
-
通用选择符*
通用选择符*(常被称为星号选择符)是一个通配符,它匹配任何元素,因此下面这条规则
* {color:green;} 会导致所有元素(的文本和边框)都变成绿色。不过,一般在使用*选择符时,都会同时使用另一个选择符。p * {color:red;}
ID和类选择符
类属性
This is a heading with the same class
as the second paragraph.
This tag has no class.
When a tag has a class attribute, you can target it
regardless
of its position in the hierarchy.
Stylin' with CSS - Figure 2.15 The Class Attribute
This is a heading with the same class as the second paragraph.
This tag has no class.
When a tag has a class attribute, you can target it regardless of its position in the hierarchy.
css class style 显示效果
多类选择符
Here the span tag may or may not be styled.
.specialtext .featured {font-size:120%;}
多个类名,如这里的specialtext和featured,放在同一对引号里,用空格分隔。实际上,更准确的说法,就应该是HTML的class属性可以有多个空格分隔的值。要选择同时存在这两个类名的元素,可以这样写:
ID属性
ID与类的写法相似,而且表示ID选择符的#(井号)的用法,也跟表示类选择符的.(句号)类似。
如果有一个段落像下面这样设定了ID属性
This is the special text.
那么,相应的ID选择符就是这样的:
#specialtext {CSS样式声明}
ID和类的小结
- 什么时候使用ID:ID的用途是在页面中唯一地标识一个元素。
- 什么时候使用类:类的目的是为了标识一组具有相同特征的元素。
ID的用途是在页面标记中唯一地标识一个特定的元素。它能够为我们编写CSS规则提供必要的上下文,排除无关的标记,而只选择该上下文中的标签。
相对来说,类是可以应用给任意多个页面中的任意多个HTML元素的公共标识符,以便我们为这些元素应用相同的CSS样式。而且,使用类也让为不同标签名的元素应用相同的样式成为可能。
层叠优先级
规则一:包含ID的选择符胜过包含类的选择符,包含类的选择符胜过包含标签名的选择符。
规则二:如果几个不同来源都为同一个标签的同一个属性定义了样式,行内样式胜过嵌入样式,嵌入样式胜过链接样式。在链接的样式表中,具有相同特指度的样式,后声明的胜过先声明的。
规则三:设定的样式胜过继承的样式,此时不用考虑特指度(即显式设定优先)。
样例思考
display:
1、块级标签转换为行内标签:display:inline;
2、行内标签转换为块级标签:display:block;
3、转换为行内块标签:display:inline-block
/*style.css source */
@font-face {
font-family: 'lakeshore';
src: url('fonts/LAKESHOR-webfont.eot');
src: url('fonts/LAKESHOR-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/LAKESHOR-webfont.woff') format('woff'),
url('fonts/LAKESHOR-webfont.ttf') format('truetype'),
url('fonts/LAKESHOR-webfont.svg#lakeshore') format('svg');
font-weight: normal;
font-style: normal;
}
body {
font-size: 40.5%;
background: 'white';
/* background-color: #0f0; */
}
a[href='#'] {
/* 添加到文本的修饰 */
text-decoration: blink;
}
.logo-text {
background: white;
text-align: center;
text-transform: lowercase;
/* font-family: lakeshore; */
font-size: 5em;
}
.thumbnail-list {
/* padding: 10; */
list-style: none;
padding: 0;
white-space: nowrap;
/*auto 如果溢出框,则应该提供滚动机制。 */
overflow-x: auto;
}
.thumbnail-item + .thumbnail-item {
margin-top: 3em;
}
.thumbnail-item {
/* display: block; */
display: inline-block;
/* width: 200px; */
width: 300px;
border: 2px solid rgb(100%, 50%, 100%);
border: 1px solid rgba(100%, 100%, 100%, 0.8);
}
.thumbnail-image {
display: block;
width: 100%;
}
.thumbnail-title {
display: block;
margin: 0;
padding: 0.5em 1em;
background: rgb(96, 125, 120);
color: rgb(202, 238, 255);
font-family: sans-serif;
font-size:3em;
}
ottergram
ottergram
通过对上面css的分析,我们可以初步理解class样式的设置以及对display属性的理解。