# 显示类型转换
常见的块级元素
- div/p/dl/form/h1-h6/ol/ul/li
# 块级元素的特点
1.独占一行;
2.可以设置宽高;.默认宽度是父元素的100%,高度为0px
3.可以设置正常上下外边距和内边距
4.结构上:内部可以包裹其他任意类型元素
但是:p标签里面不能放块级标签
<p>
123
<div>456</div>
<p>789</p>
</p>
/*P标签遇到块级元素会自动的加上结束标签*/
2
3
4
5
6
常见的行内元素
- a/b/em/i/img/span/strong
# 行内元素(内联元素)的特点
1.不独占一行,
2.行内元素就不能设置宽高.宽高由里面的内容撑开
- 左右外边距内边距边框有效 上下外边距内边距边框无效, auto水平居中无效.
- 标签之间解析空格
5.结构上:内部不能放块元素 但是a标签能包裹块级元素(特殊,区域链接).
<a href=""> 123 <a href="">789</a> </a> 但是a标签里面不能包裹a标签1
2
3
4
5
img{
width:500px;
height:500px;
}
/*能够设置宽高,但不独占一行.
很多人都把理解为行内块元素.但其实不是的.
因为img确实是行内元素,但它也是置换元素
置换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容。
例如浏览器会根据<img>标签的src属性的值来读取图片信息引入图片来进行显示,存储在代码之外的.
而如果查看HTML代码,则看不到图片的实际内容;
这些元素拥有内在尺寸 内置宽高 他们可以设置width/height属性.
他们的性质同设置了display:inline-block的元素一致。*/
2
3
4
5
6
7
8
9
10
11
12
# 行内块的元素的特点
inline-block: (input,select)
- 本质上是行内元素,具有块内元素的性质.
- 支持宽高,但是宽高都是由里面内容撑开
- 上下左右外边距内边距有效,不支持auto水平居中
- 标签之间的空格解析
- .结构上:内部可以包裹其他任意类型元素
行内块元素的对齐方式
基线对齐,盒子在没有内容的时候,最底部就是基线,盒子里面有内容的时候,根据盒子内容最下面一行字的基线为准
display:none;特点:
不占据空间(如同消失一般),无法点击交互
内部后代元素也不会显示
display为none的元素浏览器不会渲染
# 解析空格
针对于行内元素或者行内块元素而出现的效果.
html换行被解析为空格也是常说的3像素空隙的问题
解析空格原理:换行,空格或者tab缩进产生的距离也叫作空文本节点,会被保留为一个空格.
解析空格解决办法
- 删除标签之间空格 缺点:不利于文档格式化,对开发者不友好
- 设置margin-left为负值 缺点:不同浏览器间隙不同,需要设置多次
- 给行内块元素父级设置字体大小为零,行内块元素字体大小重新设置 这是目前最通用的做法
# 默认样式
通常情况下,游览器会为元素设置一些默认样式,
默认样式的存在会影响到页面的布局,通常情况下写代码前必须要去除游览器的默认样式(pc端的页面)
重置样式表
1.*{}把所有标签
2,把所有需要清除的标签样式清除
reset.css 直接去除了游览器的默认样式. https://meyerweb.com/eric/tools/css/reset/
normalize.css 对默认样式进行了统一 https://necolas.github.io/normalize.css/8.0.1/normalize.css
# 鼠标样式
使用cursor属性,设置鼠标样式
cursor:pointer; 小手掌 ==> 常用
cursor:move; 表示对象可以移动
cursor:wait; 表现正在加载
cursor:help; 表示需要帮助
cursor :url("5.png"),pointer; 自定义鼠标样式
图片格式一般要使用.cur和.ani为后缀图片,如果要使用png和gif大小最好不能超过32*32
# 游览器内核
- IE浏览器:Trident内核,也是俗称的IE内核;
- Chrome浏览器:以前是Webkit内核,现在是Blink内核;
- Firefox浏览器:Gecko内核,俗称Firefox内核;
- Opera浏览器:最初是自己的Presto内核 == 》 Webkit --》Blink
- Safari浏览器 :Webkit内核
# 设计理念(渐进增强和优雅降级)
渐进增强认为应该专注于内容本身。一开始针对低版本的浏览器构建页面,满足最基本的功能,再针对高级浏 览器进行效果,交互,追加各种功能以达到更好用户体验,换句话说,就是以最低要求,实现最基础功能为基本,向上兼容。
优雅降级指的是一开始针对一个高版本的浏览器构建页面,先完善所有的功能。然后针对各个不同的浏览器进行测试,修复,保证低级浏览器也有基本功能 就好,低级浏览器被认为“简陋却无妨 (poor, but passable)” 可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。也就是以高要求,高版本为基准,向下兼容。
- 二者区别
采用渐进增强,先做基本功能,再针对各个游览器渐渐增加功能,相对优雅降级,开发周期长,前期投入资金大,你想拿一个基础功能版给客户看,多寒酸.但是也有好处,提供了好的平台稳定性,维护资金少,长期降低成本
优雅降级可以在较短时间,开发出只用于一个游览器的完整功能版,这时候你拿给客户谈底气就会很足,可以进行市场试水,对于功能尚未确定的产品,优雅降级不失为一种节约成本的方法.