首页 > 代码库 > css揭秘读书笔记

css揭秘读书笔记

currentColor属性让hr和段落相同的颜色:

div {
color: red;
}
hr {
background: currentColor;
/* 一定要设置高度*/
height: 0.1rem;
}
<div>
<p><hr>p里面的hr标签不变色<hr></p>
<hr>
</div>

background-origin:padding-box是背景图片的默认原点,background-position:right 10px bottom 10px;可以让图片偏移,如果不支持这个属性,可以这样background:url() no-repeat right bottom;

记忆border-image类似background,第一个属性是颜色可以是渐变,第二个是图像地址,第三个是切割位置 第四个是平铺方式 (默认stretch拉伸。repeat,round比较常用)

想把一个矩形盒子变成椭圆,只需要设置border-radius:50%;如果是一个正方形就会变成圆

关于border-radius圆角半角的详细理解:border-radius:50% / 100% 100% 0 0;就相当于border-radius:50% 50% 50% 50% / 100% 100% 0 0;左边是半径r1相当于x坐标,右边半径r2相当于y坐标,两个坐标确定一个圆心点,以这个点画出的圆角可能是四分之一圆(当r1,r2相等时),可能是四分之一的椭圆(r2是r1的二倍时),总结一下就是两点确定圆角区域,理解的时候可以想象把一个盒子放到了x坐标上。

快速记忆半圆角规则:11确定单角,51确定二上,15确定二右

图片应用半透明遮罩层:

<div class="layer">
<a href="http://www.mamicode.com/#"><img src="http://www.mamicode.com/demo.jpg"></a>
</div>
<style type="text/css">
.layer {
background-color:#000;
}
a {
transtion:opacity .5s;
}
a:hover {
opacity: .5;
}
</style>

为某个字符指定特殊的字体样式:

@font-face {
font-family: Ampersand;
src: local(‘Baskerville-Italic‘),
local(‘GoudyOldStyleT-Italic‘),
local(‘Garamond-Italic‘),
local(‘Palatino-Italic‘);
<!-- 指定使用字体的Unicode码位,可以是区间 -->
unicode-range: U+26;
}
h1 {
font-family: Ampersand, Helvetica, sans-serif;
}
<!-- 标题中的&符号会应用Ampersand字体,其他文字会应用Helvetica字体 -->
<h1>html &amp; css</h1>

浮动元素的水平居中:

.box {
float: left;
position: relative;
left: 50%;
}
.box p {
float: right;
position: relative;
right: 50%;
}
<div class="box">
<p>我是浮动的</p>
<p>浮动居中</p>
</div>

高级选择器的组合使用:
这个选择器选中li为n的所有列表项
li:first-child:nth-last-child(n),
li:first-child:nth-last-child(n)~li{}
这个选择器选中li大于4的所有列表项
li:first-child:nth-last-child(n+4),
li:first-child:nth-last-child(n+4)~li{}
这个选择器选中li最大为4的所有列表项
li:first-child:nth-last-child(-n+4),
li:first-child:nth-last-child(-n+4)~li{}
这个选择器选中li为2到6个的所有列表项
li:first-child:nth-last-child(n+2):nth-last-child(-n+6),
li:first-child:nth-last-child(n+2):nth-last-child(-n+6)~li{}

页脚固定到底部的解决方案

<header>这是头部</header>
<main>这是主要区域</main>
<footer>这是页脚</footer>
<style type="text/css">
mian{
min-height:calc(100vh - hh-fh);
box-sizing:border-box;
}
<!-- 另外一种完美的方法 -->
body{
display:flex;
min-height:100vh;
flex-flow:column;
}
main {
flex:1;
}
</style>

头部和页脚宽屏布局:

<footer>这是内容区域</footer>
<style type="text/css">
footer {
padding:20px;<!--回退机制-->
width:960px;
padding:20px clac(50% - 960px);
background:#ccc;
}
</style>

css揭秘读书笔记