css整理

盒模型(标准盒模型,ie盒模型)

盒子由四个部分(或称区域)组成,每个盒子有四个边界:内容边界 Content edge、内边距边界 Padding Edge、边框边界 Border Edge、外边框边界 Margin Edge。

  1. 标准盒模型(css->box-sizing:content-box): 比如你设置盒子宽度为100px,那么content的宽度就是100px,不包含padding、margin、border;
  2. ie(box-sizing:border-box):比如设置宽度为100px,这里的100px包含元素内容content、padding、border(ps:不包含margin);

css伪类选择器

  1. p:first-of-type 选择属于其父元素的首个元素
  2. p:last-of-type 选择属于其父元素的最后元素
  3. p:only-of-type 选择属于其父元素唯一的元素
  4. p:only-child 选择属于其父元素的唯一子元素
  5. p:nth-child(2) 选择属于其父元素的第二个子元素
  6. :enabled :disabled 表单控件的禁用状态。
  7. :checked 单选框或复选框被选中。

垂直水平居中

  • css
.vertical-center{
    position: relative;
}
.vertical-center>div{
    position: absolute;
    top: 0;left: 0;bottom: 0;right: 0;
    margin: auto;
}
// 方法二、
.vertical-center{
    position: relative;
}
.vertical-center>div{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}
// 方法三
.vertical-center{
    display: flex;
    align-items: center;
    justify-content: center;
}
// 方法四
.vertical-center{
    position: relative;
}
.vertical-center>div{
    position: absolute;
    top: calc(50% - 25px); // 减去当前元素的一半  前提(需要知道当前元素宽高)
    left: calc(50% - 25px);
}
//五
.vertical-center{
    text-align: center;
    line-height: 300px;
}
.vertical-center>div{
    display: inline-block; 
    vertical-align: middle;
    line-height: initial; 
    text-align: left;
}
  • html
<div class="vertical-center boxs bgcolor">
    <div class="child bgcolor2">内部元素</div>
</div>

postion属性

  1. static(默认):按照正常文档流进行排列;
  2. relative(相对定位):不脱离文档流,参考自身静态位置通过 top, bottom, left, right 定位;
  3. absolute(绝对定位):参考距其最近一个不为static的父级元素通过top, bottom, left, right 定位;
  4. fixed(固定定位):所固定的参照对像是可视窗口。

常见的兼容性 附:css属性兼容性表

  1. 清空margin、padding (*{margin:0;padding:0;})

  2. 双倍边距bug:块状元素设置了float属性后,又设置了横向的margin值,在IE6下显示的margin值要比设置的值大;解决方案: 给float的元素添加 display:inline;将其转换为内联元素;

  3. IE6(默认16px为最小)不识别较小高度的标签(一般为10px)。解决方案:给标签添加:overflow:hidden;给标签添加font-size:0;

  4. 图片添加超链接时,在IE浏览器中会有蓝色的边框:解决方案:border:0或者border:none;

  5. min-hieght 不兼容ie6。 解决方案:min-height:100px;_height:100px;min-height:100px;height:auto!important;height:100px;

  6. IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。解决方法:统一通过getAttribute()获取自定义属性。

  7. Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决。

  8. 超链接访问过后hover样式就不出现了,被点击访问过的超链接样式不再具有hover和active了。解决方法是改变CSS属性的排列顺序:L-V-H-A ( love hate ): a:link {} a:visited {} a:hover {} a:active {}

display:none与visibility:hidden的区别

  1. display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)
  2. visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)

BFC(Block Formatting Context)块级格式化上下文

  • 定位方案:
  1. 内部的Box会在垂直方向上一个接一个放置。

  2. Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的margin会发生重叠。

  3. 每个元素的margin box 的左边,与包含块border box的左边相接触。

  4. BFC的区域不会与float box重叠。

  5. BFC是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

  6. 计算BFC的高度时,浮动元素也会参与计算。

  • 下列方式会创建块格式化上下文
  1. 根元素,即HTML标签
  2. 浮动元素:float值为left、right
  3. overflow值不为 visible,为 auto、scroll、hidden
  4. display值为 inline-block、table-cell、table-caption、table、inline-table、flex、inline-flex、grid、inline-grid
  5. 定位元素:position值为 absolute、fixed

注意 display:table也可以生成BFC的原因在于Table会默认生成一个匿名的table-cell,是这个匿名的table-cell生成了BFC。

媒体查询

  1. <head>里边<link rel=”stylesheet” type=”text/css” href=”xxx.css” media=”only screen and (max-device-width:480px)”>

  2. CSS : @media only screen and (max-device-width:480px) {/css样式/

css 优化

避免后代选择符、使用紧凑写法、避免不必要的重复、语义命名类、精简规则(合并重复样式)

元素竖向的百分比

当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度。

line-height

行高是指一行文字的高度,具体说是两行文字间基线的距离。CSS中起高度作用的是height和line-height,没有定义height属性,最终其表现作用一定是line-height。
单行文本垂直居中:把line-height值设置为height一样大小的值可以实现单行文字的垂直居中,其实也可以把height删除。
多行文本垂直居中:需要设置display属性为inline-block

让页面里的字体变清晰,变细用CSS怎么做

-webkit-font-smoothing在window系统下没有起作用,但是在IOS设备上起作用-webkit-font-smoothing:antialiased是最佳的,灰度平滑。

postion:fixed android无效

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>

参考原文:https://www.itcodemonkey.com/article/2853.htmlhttp://www.fly63.com/article/detial/3303https://segmentfault.com/a/1190000013023485

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容

  • 一、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 在CSS当中,相...
    dengpan阅读 556评论 0 0
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 638评论 0 3
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,419评论 0 8
  • 1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(cont...
    曼巴童鞋阅读 768评论 0 3
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,219评论 0 8