,它的作用是什么?
声明位于文档中的最前面的位置,此标签告知浏览器文档使用哪种HTML或XHTMl规范(重点:告诉浏览器按照何种规范解析页面)
不存在或格式不正确会导致文档以混杂模式呈现title : 鼠标移入到图片显示的值
alt : 图片无法加载时显示的值
在seo的层面上,蜘蛛抓取不到图片的内容,所以前端在写img标签的时候为了增加seo效果要加入alt属性来描述这张图是什么内容或者关键词。
strong:粗体强调标签,强调,表示内容的重要性
em:斜体强调标签,更强烈强调,表示内容的强调点
针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、 交互等改进和追加功能达到更好的用户体验。
渐进增强的观点关注内容本身
一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
优雅降级的观点更关注主流浏览器,一些特定的浏览器,除修复较大的错误外,其他的差异将会被直接忽略
元素的每个
元素。
元素的每个
元素。
元素的每个
元素。
元素。
元素。
Png,jpeg,gif,svg,webp,webp,base64
微格式(Microformats)是建立在已有的、被广泛采用的标准基础之上的一组简单的、开放的数据格式
作用:
在捉取Web内容时,能够更为准确地识别内容块的语义;
对内容进行操作,包括提供访问、校对,还可以将其转化成其他的相关格式,提供给外部程序和Web服务使用。
应用例子:
当用手机浏览某公司的网站时,手机浏览器识别出了网页中的 hCard 信息。这个 hCard 标记了该公司的多种联络方式,手机浏览器很聪明地提示我“是否保存到通讯录”,于是我很经松地保存了我所需要的信息
维护网站,提高内容质量,保持更新
网站结构布局优化:尽量简单、开门见山,提倡扁平化结构。
控制首页链接数量,要适中
导航优化:
a:尽量采用文字方式
b:搭配图片导航,但是图片代码一定要进行优化,img标签必须添加“alt”和“title”属性
c:应该加上面包屑导航
控制页面的大小:减少http请求,提高网站的加载速度
适量的关键词和网页描述
itle标题,强调重点即可,
meta keywords标签:关键词,列重要关键字即可
meta description标签:网页描述,要高度概括
(body中的标签:尽量让代码语义化
a标签:页内链接,要加 “title” 属性加以说明
mg应使用 “alt” 属性加以说明
strong、em标签 : 需要强调时使用
巧妙利用CSS布局
谨慎使用 display:none
保留文字效果
选择器类型
权重计算规则
一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。
!important 比 内联优先级高
问题是:a标签的四种状态,排序出问题了。
正确排序:L-V-H-A
love hate原则,即l(link)ov(visited)e h(hover)a(active)te。
a:link 普通的、未被访问的链接
a:visited 用户已访问的链接
a:hover 鼠标指针位于链接的上方
a:active 链接被点击的时刻
块级元素(block)特性:
总是独占一行;默认宽度是父元素100%,高度被内容撑开;
宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;
内联元素(inline)特性:
宽度(width)、高度(height)、内外边距的上下都不可设置,内外边距的左右可设置,其大小就是里面文字或图片的大小。
行内块(inline-block) 元素
拥有内在尺寸,可设置高宽,但不会自动换行
常用行内块元素: 、 、 、 、
外边距重叠就是 margin-collapse。
折叠外边距 :在 CSS 当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。
解决外边距重叠的问题:
开启元素的BFC属性,在元素的前面加一个空的table
Opacity
? 垂直方向:line-height 设置跟高度一致
? 水平方向:text-align center
方法一:
.child{
height: 100px;
position: absolute;//父元素相对定位
top:50%;
left:50%;
transform: translate(-50%,-50%);
}
方法二:
.child{
width: 100px;
height: 100px;
position: absolute;
top:50%;
left:50%;
margin-top: -50px;
margin-left: -50px;
}
方法三:
child {
width: 100px;
height: 100px;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto
}
方法四:
father{
width: 200px;
height: 200px;
display: flex;
justify-content: center;
align-items: center;
}
方式五
father{
width: 500px;
height: 500px;
border: 1px solid red;
/* 将元素转成表格单元格显示 */
display: table-cell;
vertical-align: middle;
text-align: center;
}
子元素需设置
{
display: inline-block;
vertical-align: middle;//消除行内块元素三像素问题
}
方法一:的容器
.img-container{
width: 500px;
height: 500px;
border: 1px solid red;
/* 将元素转成表格单元格显示 */
display: table-cell;
vertical-align: middle;
text-align: center;
}
方法二:
.img-container{
display: flex;
justify-content: center;
align-items: center;
}
px 和 em 都是长度单位,
px 的值是固定的,指定是多少就是多少,计算比较容易。
em 得值不是固定的,并且 em 相对于当前字体大小改变,若自身没有字体大小,则继承祖先元素的字体大小。
浏览器的默认字体高都是 16px。所以未经调整的浏览器都符合: 1em=16px。
? CSS 预处理器。是 CSS 上的一种抽象层。是一种特殊的语法/语言编译成 CSS。
优势:
? 标准的 W3C 盒子模型模型 ,css为了更好的布局,将页面中所有的元素形状都统一为矩形。
盒模型包括四个方面:内容、内边距、边框、外边距(不计入盒子实际大小)
? 由于浏览器兼容的问题,不同的浏览器对标签的默认样式值不同,若不初始化会造成不同
浏览器之间的显示差异,一般引入重制样式表,常用的有resize.css,normal.css等
? BFC(块级格式化上下文),页面上的一个隔离的独立容器,一个创建了新的 BFC 的盒子是独立布局的,盒内元素的布局不会影响盒子外面的元素。可以解决两个相邻的盒子垂直外边距重叠的问题
? 如何开启BFC?
1. float的值不是none。
2. position的值不是static或者relative。
3. display的值是inline-block、table-cell、flex
4. overflow的值不是visible
? 浏览器默认的margin和padding不同
? **解决方案:**加一个全局的 *{margin:0;padding:0;} 来统一
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率。
使用外 链 css 和 js 脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问。
更少的代码和组件,容易维 护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性。
? CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素都有默认
的 display 值
块级元素(默认值是‘block’) : div p h1-h6 ul ol header main footer
行内元素(默认值是‘inline’) : a em span strong del strong
? 结构层 Html
? 表现层 CSS
? 行为层 js
? display:
? none:取消样式
? block:块级元素
? inline:行内元素
? inline-block:行内块元素
? normal:默认样式
? flex:弹性布局
absolute
生成绝对定位的元素,相对于离最近的包含块元素进行定位。
fixed
生成固定定位的元素,相对于浏览器窗口进行定位。
relative
生成相对定位的元素,相对于其正常位置进行定位。
static
元素出现在正常的流中
Sticky 开启粘滞定位
两者盒子模型 渲染模式等的不同
定义:
title:概括了网站信息,可以告诉搜索引擎或者用户关于这个网站的内容主题是什么
h1:文章主题内容,告诉蜘蛛我们的网站内容最主要是什么
区别:
title他是显示在网页标题上、h1是显示在网页内容上
title比h1添加的重要 (title > h1 ) ==》对于seo的了解
场景:
网站的logo都是用h1标签包裹的
定义:
b:实体标签,用来给文字加粗的。
strong:逻辑标签,用来加强字符语气的。
区别:
b标签只有加粗的样式,没有实际含义。
strong表示标签内字符比较重要,用以强调的。
题外话:为了符合css3的规范,b尽量少用该用strong就行了。
lex-direction:排列方向
flex-direction: row | row-reverse | column | column-reverse
flex-wrap如果一条轴线排不下,如何换行
flex-wrap: nowrap | wrap | wrap-reverse
flex-flow属性(上述两个组合)
flex-flow: flex-direction, flex-wrap
flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap
justify-content属性(在主轴上的对齐方式)横向
justify-content: flex-start | flex-end | center | space-between | space-around
align-items属性(在交叉轴上如何对齐)纵向
align-items: flex-start | flex-end | center | baseline | stretch
flex-grow属性(放大比例,默认为0,即如果存在剩余空间,也不放大)
flex-grow: 默认为0
flex-shrink属性(缩小比例,默认为1,即如果空间不足,则缩小)
flex-shrink: 默认为1
flex-basis属性(在分配多余空间之前,项目占据的主轴空间)
flex-basis: | auto
flex属性
flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选
flex: auto; (1 1 auto)
flex: none; (0 0 auto)
定义:
i:实体标签,用来做文字倾斜的。
em:是逻辑标签,用来强调文字内容的
区别:
i只是一个倾斜标签,没有实际含义。
em表示标签内字符重要,用以强调的。
场景:
i更多的用在字体图标,em术语上(医药,生物)。
? 可继承: font-size font-family color;
? 不可继承 :border padding margin width height ;
Width:0;
Height:0;
Border:50px solid yellowgreen;
border-color:transparent transparent transparent yellowgreen
当我们明确的知道浮动元素位置时,我们可以简单的使用clear:both
。但明确的知道浮动元素位置这种情况太过理想,我们还需要在我们的工具箱中有更多的清除浮动工具。
常用有:
溢出overflow
方法依赖父元素上设置溢出css
属性。如果此属性在父元素上设置为 auto 或 hidden,父级将扩展以包含浮动,有效的为后续的元素清除浮动。这种方法也许表现的有更好的语义,因为它可能不需要额外的元素。但是,如果您发现自己添加了一个新的 div 来应用它,它与空 div 方法一样没有语义,而且适应性较差。还要记住的是,overflow属性是不是专为清除浮动,要小心,不要隐藏内容或触发不必要的滚动条。
顾名思义,就是一个空的div
标签,div
标签当中不放任何东西。有时候你可能会见到一个
标签货一些其它块级元素。不过div
标签是最常见的,因为它本身不具有浏览器默认样式,没有任何特殊的语义和功能,不像p
标签。不过使用这种方法会受到一些推崇HTML标签语义化开发人员的藐视,因为它的存在对页面没有任何的意义,纯粹是多余的,当然,从严格意义上讲,他们的看法是对的,不过它可以正确的完成目的并且不会影响到其它标签。
完整的描述应该是——在浮动父元素结束标签之前插入清除浮动的块级元素。假设空块级元素为。我们还需要为其设置清楚浮动的CSS属性
.emptyClear{
clear:both;
}
在父级元素末尾添加的元素必须是一个块级元素,否则无法撑起父级元素高度。
最简单方便的方法是使用巧妙的 CSS 伪选择器 (:after) 来清除浮动。不用在父标签设置overflow
属性,而是对父元素添加一个classclearfix
类,然后在CSS当中声明它就好了。
.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
这将会在内容中添加一个小的.
从视图中隐藏,从而清除浮父元素之后。 这还不是全部,因为需要使用额外的代码来适应旧浏览器。
更多使用偶数字体,一则设计师给的大部分是偶数字体,二则偶数字体容易进行文本对齐,三则浏览器渲染,比较容易渲染
通常被意译为“CSS图像拼合”或“CSS贴图定位”,或者称之为”雪碧图“
利用CSS Sprites能很好地减少网页的http请求,从而大大提高了页面的性能,这也是CSS Sprites最大的优点;CSS Sprites能减少图片的字节,曾经多次比较过,把3张图片合并成1张图片的字节总是小于这3张图片的字节总和。
在图片合并时,要把多张图片有序的、合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。在宽屏及高分辨率下的自适应页面,如果背景不够宽,很容易出现背景断裂;
CSSSprites在开发的时候比较麻烦,你要通过photoshop或其他工具测量计算每一个背景单元的精确位置,这是针线活,没什么难度,但是很繁琐;幸好腾讯的鬼哥用RIA开发了一个CSS Sprites样式生成工具,虽然还有一些使用上的不灵活,但是已经比photoshop测量来的方便多了,而且样式直接生成,复制,拷贝就OK!
CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。
Line-height是设置行高,每一行的行高
height是设置元素高度,整个的高度