说来惭愧自认为对css了解,但在项目中却很少有正确的使用css,如果面向对象的css吧,其实也不是不想用而是css天生就是面向对象的,高度可重用,但是如果把每个都单独提取,难免会有过多的class以及自己也比较懒。

  你要干嘛就选择什么样的标签,命名也一样。从内容本质出发,它是干什么的。

  微型格式,如果某些内容需要的标签没有,可以使用class来代替 class="vcard"联系信息。

  

  通过需求和流程图可以事先考虑如何布局使用什么元素。

标签的使用:
  ul无序列表
  ol有序列表
  dl>dt+dd描述内容 可以用在商品之类的描述上
  blockquote描述,q短描述 cite引用 可以用在用户评论上
  em强调

css属性
  用outline替代border这样就不用再减border的值了或者使用box-sizing:border-box;

  又想设置高度有想高度自适应可以使用min-height

  box-sizing
    表示width宽度包含哪些,默认值是content-box表示width只包括内容宽度

媒体查询

  @media screen and (min-width:640px)
    screen屏幕(width:xx)包括浏览器滚动条

    only对不支持该语法的浏览器隐藏此规则
    not如果浏览器不满足设置的条件可以通过not来设置

  • 通过device-width可以获取设备宽和高不包括浏览器滚动条。
  • 通过orientation特性可以根据屏幕的宽度和高度的比较设计不同样式。orientation:landscape当浏览器宽度大于高度的时候会被匹配成功,而portrait则相反。我们可以用它来实现响应式的导航。
  • touch-enabled可以匹配触摸屏

通过媒体查询和rem实现响应式字体大小

html{
  font-size:10px;
}
@media only device-width and (min-width:360px) {
  html{
    font-size: 11px!important;
  }
}
@media only device-width and (min-width:400px) {
  html{
    font-size: 13px!important;
  }
}
@media only device-width and (min-width:1000px) {
  body{
    max-width:640px;
    margin:0 auto;
  }
}

  iPhone、iPad,和Android等设备会通过四个屏幕侧边中较短的一对去测量device-width。也就是说,给定尺寸为320×480的设备,不管是以纵向还是横向模式去查看,device-width都会是320px。

网页字体

  @font-face定义字体规则

  @font-face{
    font-family:字体名;
    src:local('字体名'),url('你要导入的字体路径') format('字体类型')
  }

local使用源字体的名称去检查字体是否已经安装在用户的机器上;url提供一个指向字体的路径,当字体在本地不可用时使用;而format指定字体的类型

通过font-family:字体名,来使用,并且可以覆盖字符。

兼容IE9以下

src:url('xx.eot');
ie9以下支持eot格式,不支持local

为了兼容强制下载所定义的字体
local('☺')

可以指定多个url路径以,分割达到兼容的效果。

更简单的兼容方法

@font-face{
  font-family:name;
  src:url('filename.eot?') format(eot),
  url('filename.woff') format('woff'),
  url('filename.otf') format ('opentype'),
  url('filename.svg#filename') format('svg');
}

  @font-face生成器(http://www.fontsquirrel.com/fontface/generator/)。只要简单上传你要使用的字体文件,@font-face生成器就会将其转化为所有相关的格式——而且还可以生成需要在页面中使用的CSS。

font-stretch属性,它告诉浏览器显示的字体风格要比当前更窄一些。

使用font-size-adjust属性。该属性可以动态修改font-size属性。

文本效果

  text-shadow:x y blur-radius color
  文字阴影,支持多重阴影用,分割

  -webkit-text-stroke:width color
  描边

  -webkit-text-fill-color:color
  填充,对字符的轮廓进行描边

  text-overflow:ellipsis
  用省略号替换超出的文字
  white-space:nowrap;
  防止文本被折叠成多行

  注意还需要加overflow:hidden;并且宽度。

  resize:both;
  改变元素大小

  text-align:justify;
  文本两端对齐
  text-align-last
  设置最后一段文本的对齐方式

多列布局

  column-count:number
  要分成几列

  column-width:单位
  根据屏幕宽度自动分列

  column-gap:单位
  边界间隔

  column-rule:1px solid red;
  分界线

背景

  一个元素支持多个背景图片以,分割

  background-size
  对背景图片进行缩放

  

  background-clip:border-box、content-box、padding-box
  背景裁剪,它会设置盒模型的那一部分成为背景(颜色或图片)显示的界限

  

  background-origin:border-box、content-box、padding-box
  设置背景开始计算的点

  

  background-repeat:space、round
  space:平铺且不被裁剪或缩放的最大数量的图片,并且在显示时会有空白区域出现在它们中间
  round:水平和垂直填充包含元素的图片的最大完整数量

  background-image:image-rect(url,top,right,bottom,left)
  背景图片裁剪,解决图片精灵问题

  mask:url repeat x y;
  遮罩

  border-radius

  边框

  border-image
  边框图片

  box-shadow:inset x y radius spread color
  盒子阴影,radius:模糊半径,spread:阴影扩散的距离

  rgba值只能应用到它指定的元素上,所以子元素可以否决所有的继承。

  currentColor表示当前color颜色值

  appearance:button、radio-button、password...
  使用来自操作系统的不同地方的颜色。

2D变换-transform

  允许多重变换以空格隔开 transform:rotate(10deg) skew();

  transform:rotate(10deg);
  旋转

  transform-origin:x y;
  改变原点,transform属性中默认的原点是水平垂直中心

  translate(x,y)
  平移,该函数可将元素从它的默认位置进行移动

  translate非常类似于使用相对定位以及left和top属性,但请记住,经过变换的元素会保留它的位置,只是从显示上看起来像被移动过,被变换的是元素的图像,而不是元素本身。

  skew(x,y)
  倾斜

  scale(x,y)
  缩放

  matrix
  矩阵

  box-reflect:direction offset image;
  反射

  transition:property time ease、linear、ease-in、ease-out、ease-in-out delay

  过渡

动画
  @keyframes声明关键帧

@keyframes 'name'{
  keyframes{
    property:value;
  }
}

  通过animation来调用

  animation:name time ease、linear、ease-in、ease-out、ease-in-out delay count direction
  名字 持续时间 运动方式 延迟 执行次数(infinite重复播放) 方向(normal或者alternate反向播放)

  播放状态
  animation-play-state:running|paused
  running表示动画正在播放,而paused表示动画未在播放

  允许多重动画。

3D变换
  transform-style:preserve-3d;

  perspective
  透视

  perspective-origin

  transform-origin
  变换原点

CSS3新技能学习笔记的更多相关文章

  1. CSS3新特性(阴影、动画、渐变、变形、伪元素等)

    CSS3与页面布局学习总结(六)--CSS3新特性(阴影.动画.渐变.变形.伪元素等)   目录 一.阴影 1.1.文字阴影 1.2.盒子阴影 二.背景 2.1.背景图像尺寸 2.2.背景图像显示的原 ...

  2. css3新特性总结

    一.什么是css3 css用于控制网页的样式和布局,css3是css的升级版本,受浏览器限制,跨浏览器开发有点复杂.css3完全向后兼容 二.css3新特性 1.边框 css3的边框有如下属性: (1 ...

  3. 新特性AAtitti css3 新特性attilax总结titti css

    Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...

  4. Atitti css3 新特性attilax总结

    Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...

  5. 总结CSS3新特性(Transform篇)

    概述: CSS3新添加的Transform可以改变元素在可视化区域的坐标(这种改变不会引起文档的重排,只有重排),以及形状,还有些3D形变.结合 Animation(这里以后会有个链接的) 能实现酷炫 ...

  6. 总结CSS3新特性(颜色篇)

    颜色: CSS3新增加了hsl(), hsla(), rgb(),rgba()四个函数来创建color值; hsl(): hsl函数:h(色调),s(饱和度),l(亮度); 色调:为0-360之间的数 ...

  7. 使用Modernizr探测HTML5/CSS3新特性(转载)

    转载地址:http://www.cnblogs.com/TomXu/archive/2011/11/18/detecting-html5-css3-features-using-modernizr.h ...

  8. css3新属性的总结

    今天继续总结css3的一些css3新样式,先列一个简单的提纲,重要的还是圆角.阴影.渐变.文字缩略,最最重要的是过度transition,变换transform和animation圆角阴影渐变 圆形渐 ...

  9. 使用Modernizr探测HTML5/CSS3新特性

    [转] HTML5, CSS3以及相关技术(例如canvas和web sockets)带来了非常有用的特性,可以让我们的web程序提升一个新的level.这些新技术允许我们只用HTML,CSS和Jav ...

随机推荐

  1. C代码工具--自动生成enum值和名字映射代码

    这年头好像继续做C语言的人不多了,年轻人大多去互联网和移动应用.确实,那两个领域现在来钱快,且总是供不应求.就说刚刚在一个旧同事的微信群里,有人刚放出自己有团队可以做App几分钟,哇塞,好几个人说有项 ...

  2. 【13_263】Ugly Number

    简单题 Ugly Number My Submissions Question Total Accepted: 32635 Total Submissions: 94009 Difficulty: E ...

  3. Redux-Form学习笔记

    总结下使用Redux-Form的步骤,基本的Form使用我分为一下5步: 安装Redux-Form npm install --save redux-form 创建reducer import {re ...

  4. smartupload 上传与下载(转载)

    前台: <form action="uploadimage.jsp" method="post" enctype="multipart/form ...

  5. android TCP 客户端(仅接收数据)

    配合log4net使用,用来接收调试信息.因此,此客户端只管通过TCP接收字符串数据,然后显示在界面上. 接收TCP数据 try { Socket s = new Socket("192.1 ...

  6. JAVA设计模式--抽象工厂模式

    抽象工厂设计模式 1.系统中有多个产品族,而系统一次只可能消费其中一族产品2.同属于同一个产品族的产品以其使用.来看看抽象工厂模式的各个角色(和工厂方法的如出一辙):抽象工厂角色: 这是工厂方法模式的 ...

  7. OpenMP之枚举排序

    // EnumSort.cpp : 定义控制台应用程序的入口点. //枚举排序 /* 枚举排序(Enumeration Sort)是一种最简单的排序算法,通常也称为秩排序(Rank Sort). 该算 ...

  8. word-wrap&&word-break,奇偶行、列设置样式

    1.word-wrap和word-break区分. 来源场景:机械租赁mvc驾驶员信息查看: 当备注的文字多的时候,第一列的值成这模样: 解决方案:设置table 的td可自动换行.首先table设置 ...

  9. 平滑处理Smooth之图像预处理算法-OpenCV应用学习笔记三

    大清早的我们就来做一个简单有趣的图像处理算法实现,作为对图像处理算法学习的开端吧.之所以有趣就在于笔者把算法处理的各个方式的处理效果拿出来做了对比,给你看到原图和各种处理后的图像你是否能够知道那幅图对 ...

  10. [OLE DB 源 [1]] 警告: 无法从 OLE DB 访问接口检索列代码页信息。如果该组件支持“DefaultCodePage”属性,将使用来自该属性的代码页。如果当前的字符串代码页值不正确,请更改该属性的值。如果该组件不支持该属性,将使用来自该组件的区域设置 ID 的代码页。

    SSIS的警告信息,虽然不影响使用,但是对于一个有强迫症的人来说,实在痛苦, 解决办法:控件右键--属性--AlaywayseUseDefaultCodePage 修改成True即可,默认为False