CSS碎片
1.外边距不会应用到行内非替换元素的顶端和底端,因为不会改变它的行高,所有没有视觉效果。
而行内非替换元素上下内边距虽然也不改变行高,但却能延伸背景,所有背景可见,可能会重叠其他行。
span{margin-top:10px;}//无效
2 span{margin-bottom:10px;}//无效
2.垂直对齐vertical-align(可应用于所有元素)的百分数值相对于元素的line-height计算
p{line-height:18px;}
img{vertical-align:50%;}
<p><img></p>//这使得图像上升18*50% = 9个像素。而不是相对于图像本身的高度
3.行内非替换元素没有width,height属性。可以设置其dispaly:为block显示为块级元素或inline-block显示为行内块级元素(作为行内替换元素)使其拥有width,height属性。
4.水平对齐text-align属性只应用与块级元素
5.百分数的外边距margin,内边距padding都是相对于父元素的width计算的,例子中的外边距和内边距值:300px*10% = 30px
<div style="width:300px;border:1px dotted black;">
<p style="margin:10%;">Lorem ipsuos cupiditate unde delectus!</lore></p>
</div>
<div style="width:300px;border:1px dotted black;">
<p style="padding:10%;">Lorem ipsuos cupiditate unde delectus!</lore></p>
</div>
6.正常流中,垂直相邻外边距会合并,两正取最大,两负取最小,一正一负相加。浮动元素周围的外边距不会合并。
7.浮动元素的左右外边界(除非设置负外边距,以及大于其包含块宽度)不能超出起包含块的左右内边界。
下边可能会超出,但如果设置其包含块也为浮动,就可以把浮动元素超出部分也包含在父元素中,父元素扩大以包含所有内容。
8.浮动元素与其他元素发生重叠时,行内元素会完全覆盖浮动元素(背景,边框,内容)。块级元素只将内容显示在浮动元素之上,背景和边框都在浮动元素之下显示。
8.清除浮动,clear:left/right/both/none。确保清除元素的同一行上有没有浮动元素。其实就是增加清除元素的上外边距,所以显示设置的上边距可能会被忽略。
如果需要在浮动元素和清除元素之间增加一些空白,可以设置浮动元素的下边距达到效果。
9.float:left/right浮动元素和position : absolute绝对定位,会将元素的display显示类型就会自动变为以 display:inline-block,行内块级。
10.鼠标样式css
.hoverStyle:hover{
cursor:pointer;
}
11.包裹性:
按钮就是CSS世界中极具代表性的
元素,浮动元素以及绝对定位元素都具有包裹性。inline-block
元素,可谓展示“包裹性”最好的例子,具体表现为:按钮文字越多宽度越宽(内部尺寸特性),但如果文字足够多,则会在容器的宽度处自动换行(自适应特性)。除了inline-block
请看这个需求:页面某个模块的文字内容是动态的,可能是几个字,也可能是一句话。然后,希望文字少的时候居中显示,文字超过一行的时候居左显示。该如何实现?
.box {
text-align: center;
}
.content {
display: inline-block;
text-align: left;
}
12.CSS居中:
//水平居中--行内元素:
如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center
//水平居中--定宽块级元素
.centerDiv{
width: 200px;
background:red;
margin: auto;
}
//水平居中--不定宽块级元素,不定宽度的块状元素有三种方法居中(这三种方法目前使用的都很多)
1.加入 table 标签或者设置display:table;
display:table;
margin:0 auto;
2.设置 display: inline 方法:与第一种类似,改变块级元素的 display 为 inline 类型(设置为 行内元素 显示),然后使用 text-align:center
3.设置 浮动 和 相对定位 来实现。通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中。
父元素整个框向右移动50%,父元素的左外边界刚好在屏幕的中点;
子元素又在父元素的基础上向左移动父元素宽度的50%,这就使得子元素的右外边界刚好在定位后父元素的中点,这时子元素的中点就刚好在屏幕的中点了,实现居中效果。
<div class="wrap">
<div class="wrap-center">我们来学习一下这种方法。</div>
</div>
.wrap{
float:left;
position:relative;
left:50%;
}
.wrap-center{
background:#ccc;
position:relative;
left:-50%;
}
//垂直居中--父元素高度确定的单行文本,设置父元素的 height 和line-height高度一致来实现的。
<div class="container">
hello World
</div>
.container{
height:100px;
line-height:100px;
}
//垂直居中--父元素高度确定的多行文本、图片等的竖直居中的方法有两种:
1.使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了
2.在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式, 兼容性比较差。
.container{
height:300px;
background:#ccc;
display:table-cell;/*IE8以上及Chrome、Firefox*/
vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
3.
*{margin:0;padding:0;}
.box{
height:200px;
width:300px;
background:pink;
margin:30px auto;
line-height: 200px;
}
.text{
display: inline-block;
height: auto;
font-size:16px;
line-height: normal;
vertical-align: middle;/* 保证文字垂直居中 */
}
<div class="box">
<p class="text">
多行 文本 未知高度垂直居中-by
一丝多行文本未知高度垂直居中-by
一丝多行文本未知高度垂直居中-by 一丝
</p>
</div>
4.
.box{
height:200px;
width:300px;
background:pink;
margin:30px auto;
font-size:0;//看不见备胎
}
.box:before{
content: '我是那个备胎元素';
display: inline-block;
vertical-align: middle;
width: 0;
height: 100%;
}
.text{
display: inline-block;
font-size:16px;
vertical-align: middle;/* 保证文字垂直居中 */
}
/*浮动元素居中*/
.floatCenter{
width:500px;height: 300px;
float: left;
background:pink; margin-left:-250px;
position:relative;
left:50%;
}
/*绝对定位元素居中*/
.absoluteCenter{
position: absolute;
background:pink;
width: 200px;
left:50%;
margin-left: -100px;
}
/*垂直居中*/
CSS碎片的更多相关文章
- Matplotlib数据可视化(3):文本与轴
在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...
- 【知识碎片】CSS 篇
1.CSS达到截取效果 地方卡机了会计师的立法及 => 地方卡机了... max-width: 400px; overflow: hidden; white-space: nowrap; t ...
- CSS相关知识和经验的碎片化记录
1.子DIV块中设置margin-top时影响父DIV块位置的问题 解决办法1:若子DIV块中使用margin-top,则在父DIV块中添加:overflow:hidden; 解决办法2:在子DIV块 ...
- 扑面而来的碎片--图片3D炸裂效果初体验
之前逛园子的时候看到 ChokCoco 的爆炸效果作品:[BOOM]一款有趣的Javascript动画效果 (大神英文有没有拼错呀←.←),觉得蛮有意思的,效果如下: 不过觉得这个爆炸效果还是偏软了一 ...
- 20个编写现代 CSS 代码的建议
明白何谓Margin Collapse 不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较 ...
- 20个编写现代CSS代码的建议
明白何谓Margin Collapse 不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较 ...
- CSS滚动条
× 目录 [1]条件 [2]默认 [3]尺寸[4]兼容[5]自定义 前面的话 滚动条在网页中经常见到,却并没有受到足够的重视.只有当因为滚动条的问题需要处理兼容性时,才进行调试操作.本文将就滚动条的常 ...
- 个人总结 HTML+CSS
从大一下学期接触,一直到今年,接触的时间也挺长的了,最近一些认识的盆友和同学说是想学习前端,自己也开始慢慢停下脚步,不再拼命地去学很多框架的东西,回归到基础,慢慢把基础打牢 很多知识碎片一直来不及整理 ...
- 《CSS那些事儿》读书笔记
注: 此书出版于2009年,所以有些知识...你懂得. 有些我熟悉的知识点,就没有记录下来了,所以想了解更多的细节,还是去看下此书吧. 暗灰色标记部分,是我自己的理解,有不对或要补充的地方,还请大家多 ...
随机推荐
- 装python package 时,conda提示会升级python2到python3,那可能是你的windows不支持py2env下的此包。
装python package 时,conda提示会升级python2到python3, 那可能是你的windows不支持py2env下的此包.比如:win 下,tensorflow就不支持py2的环 ...
- frist Django app — 三、 View
前面已经说过了Django中model的一些用法,包括orm,以及操作的api,接下来就是搭一些简单的界面学习view——Django中的view.主要介绍以下两个方面: url映射 请求处理 模板文 ...
- java面试题复习(六)
51.实现多线程的方法 一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如 ...
- DatakeyNames和datakey
DataKey 类用于表示数据绑定控件中某个记录的主键.记录的主键可以由数据源中的一个或多个字段组成.尽管 DataKey 类不是集合,但它可以存储多个键字段值.当调用 DataKey 类的某个构造函 ...
- java List<Map<String,Object>遍历的方法
public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayL ...
- 用es5原生模仿-es6Promise异步处理
用es5原生模仿-es6Promise异步处理,不过在处理异常的时候有点小bug不是很完美,不过多级then 是没问题的和resolve, rejec 正常调用和异常处理调用是没问题的.本帖属于原创 ...
- Java 字符串拼接四种方式的性能比较分析
一.简单介绍 编写代码过程中,使用"+"和"contact"比较普遍,但是它们都不能满足大数据量的处理,一般情况下有一下四种方法处理字符串拼接,如下: 1. 加 ...
- vue 动态添加 <style> 样式 vue动态添加 绑定自定义字体样式
created(){ //动态添加自定义字体样式 let style = document.createElement('style'); style.type = "text/css&qu ...
- Task的在主线程处理异常信息的Helper类
最近使用task时候需要把异常记录日志,直接注入非单例模式的实例进入异步线程,在高并发情况下会出现一些问题. 所以需要把异常反馈给主线程 ,并且不在主线程里进行等待,研究相关资料后,自己写了一个简单的 ...
- 布局inline-block问题
当在一行中需要展示多个拥有块级属性的标签元素时,通常选择display:inline-block; 优点:不用设置浮动或定位,浮动脱离文档流还需要清除浮动,定位降低扩展性. 问题: 1.标签元素之间会 ...