标签:也会 通过 ntb cli div ase 文字 上下文 lin
高度和行高相等(内联)
<!DOCTYPE html>
<style>
*{
font-size: 6px;
}
div.demo{
background: green;
border: 1px solid #000;
margin: 5px;
}
.demo{
height: 30px;
/*line-height百分比是根据自身高度计算的*/
line-height: 30px;
/*防止内容超出容器或者产生自动换行*/
overflow: hidden;
}
</style>
<div class="demo">
test-text
</div>
<div class="demo">
<div style="height: 10px;background: pink;">test-div</div>
</div>
使用table布局(内联,块级)
<!DOCTYPE html>
<style>
*{
font-size: 6px;
}
div.demo{
background: green;
border: 1px solid #000;
margin: 5px;
}
.demo{
display: table-cell;
/*height百分比无效*/
height: 30px;
vertical-align: middle;
}
/*
防止溢出(table-cell的高度会随着内容增加):内部放个div
div.vc-table{
height: 150px;
display: table-cell;
vertical-align: middle;
}
div.vc-table-overflow{
max-height: 150px;
overflow: hidden;
}
*/
</style>
<div class="demo">
test-text
</div>
<div class="demo">
<div style="height: 10px;background: pink;">test-div</div>
</div>
padding-top,padding-bottom相等
.demo{
padding-top: 30px;
padding-bottom: 30px;
}
通过对table的border-collapse和border-spacing进行设置
table{
/*合并边框*/
border-collapse: collapse;
/*设置相邻单元格的边框间的距离*/
border-spacing: 0;
}
th, td{
border:1px solid #000;
}
dom上的样式要和动画的起始样式相同
eg:.animate-div和MyAnimateScript里from的样式都是red
html:
<div class="animate-div">要动画的div</div>
css:
.animate-div{
color:red;
}
.animate {
animation: MyAnimateScript 3s;
}
@keyframes MyAnimateScript {
from {color:red;}
to {color:green;}
}
jq:
$(‘.animate-div‘).click(function(){
$(this).addClass("animate");
});
outline会被其他元素遮挡。
解决:将遮挡的元素不设置背景色(设置背景色透明)。
<!DOCTYPE html>
<style>
.k-captcha{
//这里设置背景色
height: 70px;
background: #fff;
}
.k-captcha:after{
clear: both;
}
.k-captcha .k-captcha-part{
//这里设置背景色会遮挡.k-captcha-part > input:checked + div的outline
height: 100%;
width: 20%;
float: left;
}
.k-captcha-part > div{
//这里设置背景色也会遮挡.k-captcha-part > input:checked + div的outline
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
height: 100%;
padding: 10px;
border-right: 1px solid #f5f8f9;
text-align: center;
cursor: pointer;
}
.k-captcha-part > input:checked + div{
background-color: #e8f3db;
outline: #8ac249 2px solid;
}
</style>
<div class="k-captcha">
<div class="k-captcha-part">
<input id="k-captcha-1" type="radio" name="captcha" style="display: none">
<div onclick="var preNode = document.getElementById(‘k-captcha-1‘);preNode.checked ? preNode.checked = false : preNode.checked = true;"><img src="" alt="">php</div>
</div>
<div class="k-captcha-part">
<input id="k-captcha-2" type="radio" name="captcha" style="display: none">
<div onclick="var preNode = document.getElementById(‘k-captcha-2‘);preNode.checked ? preNode.checked = false : preNode.checked = true;"><img src="" alt="">php</div>
</div>
</div>
==注意每个float元素的高度==,高度一样不会乱
Formatting Context:指页面中的一个渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系和作用。
BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。
BFC的生成:
浮动,绝对定位元素,和display属性为inline-boxs、table-cells、table-captions的不是块盒的块容器(除非这个值已经被传播到视口),以及当overflow不为visible的块盒才会为它的内容创建新的BFC。
BFC的特性:
举例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<p>html根节点默认是一个BFC,<div style="overflow: hidden;"></div>生成多个新的BFC</p>
<hr>
<p>div1先生成新的BFC,然后div2在根节点的BFC中排列</p>
<div style="overflow: hidden;">
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="width: 200px; height: 200px; background: pink;">div2</div>
</div>
<hr>
<p>div2先在根节点的BFC中排列,然后div1生成新的BFC</p>
<div style="overflow: hidden;">
<div style="width: 200px; height: 200px; background: pink;">div2</div>
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
</div>
<hr>
<p>div1先生成新的BFC,然后div2生成新的BFC</p>
<div style="overflow: hidden;"></div>
<div style="float: left; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="overflow: hidden; width: 200px; height: 200px; background: pink;">div2</div>
</div>
<hr>
<p>不触发BFC,margin重叠</p>
<div style="overflow: hidden;"></div>
<div style="margin: 20px; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="margin: 20px; width: 100px; height: 100px; background: pink;">div2</div>
</div>
<hr>
<p>触发BFC,margin不重叠</p>
<div style="overflow: hidden;"></div>
<div style="margin: 20px; width: 100px; height: 100px; background: lightgreen;">div1</div>
<div style="overflow: hidden;">
<div style="margin: 20px; width: 100px; height: 100px; background: pink;">div2</div>
</div>
</div>
<hr>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<!-- body默认是static(没有创建BFC)
此时body包裹住content
因为content有margin-top: 200px
所以虽然body的offsetTop为0但实际距离顶部是200 -->
<body>
<!-- nav:fixed(创建BFC) -->
<div style="position: fixed;top: 0;left: 0; width:100%; height:50px; background: rgba(0,0,0,0.5);">nav</div>
<div style="width: 100%;height: 500px; margin-top: 200px;">content</div>
</body>
</html>
IFC:行内格式化上下文。
注意:
共性:
区别:
使用场景:
伪元素都是在容器内渲染的,input、button、textarea、br等内部不能插入元素的无法使用伪元素。
像素和厘米不能直接转换,只有分辩率(dpi)下才能转换
平时经常使用72和300dpi,电脑显示器用72dpi,照片用300dpi
72dpi 1厘米=28.346像素
300dpi 1厘米=118.11像素
npm install minireset.css
npm install normalize.css
https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scaleX
transform: scaleX(-1);/*左右翻转*/
标签:也会 通过 ntb cli div ase 文字 上下文 lin
原文地址:https://www.cnblogs.com/jffun-blog/p/9068619.html