3-6CSS揭秘阅读笔记第一章:引言

  1. 写CSS的要求?--保证DRY(don't repeat yourself ),可维护、灵活性、轻量级
  2. 不同浏览器表现有细微差异,需要加浏览器前缀,把标准语法排在最后。可以在书写css时,提供回退机制回退样式。最常见的前缀Firefox的-moz-、IE的-ms-、opera的-o-,以及safari和chrome的-webkit-.
  3. CSS编写技巧--

       尽量减少代码重复:


我来写这个框的思路:
 .button{
		width:200px;
		height:100px;
		padding:15px 10px;
		color:#fff;
		font-size: 20px;
		line-height: 30px;
        border: 1px solid yellow;
        box-shadow: 0 5px 10px grey;
        text-align: center;
        text-shadow: 0 -1px 1px #355166;
        background: yellow;
	}

书上的写法:
body{font-size: 16px;}
    .button{
    	padding: .3em .8em;
    	border: 1px solid rgba(0,0,0,.1);
    	background: #58a linear-gradient(hsla(0,0%,100%,.2),transparent);
    	border-radius: .2em;
    	box-shadow: 0 .5em .25em rgba(0,0,0,.5);
    	color:white;
    	text-shadow: 0 -.05em .05em rgba(0,0,0,.5);
    	font-size: 125%;
    	line-height: 1.5;
    }

对比分析:

1.没有width和height ,可以利用width:auto的自适应效果自动填充
2.不要写绝对长度,用比值改用em单位,修改某一处时容易维护,不需要每一处都修改
浏览器里默认字体大小是16px;字号和其他尺寸与父级字号相关联,用em;如果要和<html>的字号相关联可以使用rem单位。
3.颜色值用rgba或者hsla值方便实现相对的调整变化 根据本身的颜色自适应

hsla的用法:语法:取值:<length> :Hue(色调)。 0(或360)表示红色,120表示绿色,240表示蓝色,当然可取其他数值来确定其它颜色;

<percentage> :
Saturation(饱和度)。 取值为0%到100%之间的值;
<percentage> :
Lightness(亮度)。 取值为0%到100%之间的值;
<opacity> :
alpha(透明度)。 取值在0到1之间;

    

    

1.代码易维护和代码量少不可兼得
{border-width:10px;
border-left-width:0; }
比 { border-width:10px 10px 10px 0;}
可读性以及可修改性更好

2.currentColor
从SVG借鉴的,但是没有绑定固定颜色,一直被解读为color,成为了CSS中的变量。
用法:例子让所有水平分割线(<hr>元素)自动与文本颜色保持一致,
hr{
height: 0.5em;
background: currentColor;
}
如果没有给边框指定颜色,它自动继承body中文本颜色

3.inherit可以用在任何css属性中 总是绑定到父元素的计算值 (伪元素:取其宿主元素)


这个样式是黄色部分小箭头的样式
	.callout{
		position: relative;
	}
	.callout::before{
		content: "";
		position:absolute;
		top:-.4em;left: 1em;
		padding: .35em;
		background: inherit;
		border: inherit;
		border-right: 0;
		border-bottom: 0;
		transform:rotate(45deg);
	}
人的视觉有局限性,在完美居中的情况下,实际上并不居中,要把中心点往上挪一点,才能达到居中的视觉效果 ,如果要四面的边距看起来基本上一致 需要减少padding-top/bottom的内边距


关于响应式网页设计:
使用媒体查询会增加使用成本,媒体查询的断点应该有设计自身来决定,不由具体设备决定,以下建议避免不必要的媒体查询
1.使用百分比长度取代固定长度 或者尽量尝试使用与视口相关单位(vw、vh、vmin和vmax),它们的值解析为视口宽度或高度的百分比;
2.在加大分辨率下得到固定宽度时,使用max-width而不是width,因为它可以适应较小分辨率,无需媒体查询
3.要为替代元素设置一个max-width:100%;
4.如果背景图片要完整铺满整个容器 要设置background-size:cover;
5.当图片或其他元素以行列式进行布局,让视口的宽度决定列的数量。用弹性盒布局或者display:inline-block加上常规的文本折行行为都可以实现
6.在使用多列文本时,指定列宽column-width而不是指定列数column-count,这样就可在较小屏幕上自动显示为单列布局

实现思路是尽可以努力实现弹性可伸缩的布局,并在媒体查询的各个断点区间内指定相应尺寸。

             
合理使用简写
background:red;
background-color:red;
这两条声明并不等价,background:#abc; 前一种可以确保得到红色背景,
后一条可能会和背景图片一起相互作用;
要明确的覆盖某个具体的展开式属性并保留其他相关样式 需要用展开式属性。

             

    改写成为

   

  

在background简写属性中指定background-size,需要同时提供一个background-position值,用/分隔;这是为了消除歧义,随时查阅语法
css预处理相关 ---书p14-16 用到时再查阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值