当我们面对一些需求的时候可能会问自己能不能只使用 css 完成它,而不用 javascript。最新的 css 属性跟功能能够简单快速的解决很多老问题。

本文总结了 50 多个很有趣的的 css 属性和值,我会简单的介绍他们的用法并提供示例。其中有一些属性目前是试验属性,相信随着浏览器和css标准的发展以后会很快被普遍支持。我还会介绍一些常用属性的鲜为人知的值,可能可以帮助你加深对这些属性的印象。同时文中还会提及一些浏览器特性。

目录

all

all属性可以重置把元素的其他所有属性重置为默认属性。它包括以下3个值:

initial: 修改所有元素属性或父元素的值为其初始化值

inherit: 修改所有元素属性或父元素的值为其父元素的值

unset: 修改所有元素属性或父元素的值为其父元素的值(如果有继承)或其初始值

font-smoothing

这个属性定义文本的平滑属性,可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服。不过使用了这个属性克可能会使你的页面字体跟设计稿上看起来有些不一样。它在 Webkit 与 Firefox 中使用略有不同:

-webkit-font-smoothing:

none: 关闭抗平滑处理。

antialiased: 使用平滑处理,使字体的清晰度提高一个像素的级别。

subpixel-antialiased: 亚像素级别的平滑处理,在非视网膜(retina)屏幕上有更好的效果。

-moz-osx-font-smoothing:

auto: 让浏览器自动选择处理方式。

none: 使用灰阶平滑,这个的渲染结果跟在 webkit 里使用“antialiased”类似。

list-style-position

该属性定义列表标记符的位置。

inside: 标记符在内容盒的里面。

outside: 标记符在内容盒的外面。

object-fit

该属性定义替换内容(如图片)元素如何适应到其使用的高度和宽确定的框。一般来说,图片会被压缩或者拉伸以适应外框的面积,通过该属性可以选择其他的方式来控制图片的缩放。

fill: 中文释义“填充”。默认值。替换内容拉伸填满整个content box, 不保证保持原有的比例。

contain: 中文释义“包含”。保持原有尺寸比例。保证替换内容尺寸一定可以在容器里面放得下。因此,此参数可能会在容器内留下空白。

cover: 中文释义“覆盖”。保持原有尺寸比例。保证替换内容尺寸一定大于容器尺寸,宽度和高度至少有一个和容器一致。因此,此参数可能会让替换内容(如图片)部分区域不可见。

inside: 中文释义“无”。保持原有尺寸比例。同时保持替换内容原始尺寸大小。

scale-down: 中文释义“降低”。就好像依次设置了none或contain, 最终呈现的是尺寸比较小的那个。

shape-outside 的更多内容建议参阅这篇文章:css shape-outside 总结

@supports

这个 CSS 语句该语句可以用来做特性查询,检测当前浏览器是否支持某些属性。

1

2

3

4

5

6

7

8

9

10

11

12

13

@supports (display: grid) {

.container {

display: grid;

}

}

@supports (image-rendering) {

img {

image-rendering: pixelated;

}

}

你也可以同时检测多种属性:

1

2

3

4

5

@supports (display: grid) and ((image-rendering: crisp-edges) or (image-rendering: pixelated)) {

}

var()

该功能让我们可以像 Less、Sass 一样定义变量。我们通过--* 的方式来创建一个CSS变量,并通过var(--foo) 的方式来引用一个变量(大小写敏感哦)。例如:

1

2

3

4

5

6

7

8

9

:root {

--brand-primary: #cccccc;

}

body {

background-color: var(--brand-primary);

}

var() 还可以接受第二个参数,表示备选参数,第一个参数获取失败的时候,它就生效了。

1

2

3

4

5

body {

color: var(--primary-color, #cccccc);

}

目前 IE11、Edge14 和 Opera mini 都还不支持该属性,Edge15 将会提供支持。

table-layout

该属性属性定义了表格布局算法,用于对表格中单元格、行和列进行布局。如果你需要让表格内的所有格的宽度都一样,那这个属性对你很有用。

1

2

3

4

5

table {

table-layout: fixed;

}

text-transform

该属性可以让文本变成小写(lowercase)或大写(uppercase),你也可以通过capitalize来单独对每一个单词进行操作。

transition-timing-function

该属性定义缓动元素的过渡曲线,例如ease-in或ease-out,不过它有两个值可能很少人了解:

steps(n, start|end): 关键字ease这种能实现平滑过渡动画,而stepes可以实现分步过渡,第一个参数必须是正整数,定义动画在第几步(帧)完成;第二个参数可选,接受 start 和 end 两个值,指定在每个间隔的起点或是终点发生阶跃变化,默认为 end。该值可以简写为step-start(n)和step-end(n)

cubic-bezier(n, n, n, n): 定义你自己的贝塞尔过渡曲线。

vh, vw, vmin, vmax

这些单位被用来计算视口大小(viewport size)。

vh: 1vh 是 1/100 的视口高度。

vw: 1vw 是 1/100 的视口宽度

vmin: vh 和 vw 的最小值。

vmax: vh 和 vw 的最大值。

例如浏览器的视口大小为 1280*655px,1vh 就等于 6.55px,1vw 等于 12.8px,vmin 是 6.55px(两者间的最小值),vmax 是 12.8px(两者间的最大值)。

white-space

该属性是用来设置如何处理元素中的空白。

normal: 连续的空白符会被合并,换行符会被当作空白符来处理。填充line盒子时,必要的话会换行。

nowrap: 和 normal 一样,连续的空白符会被合并。但文本内的换行无效。

pre: 连续的空白符会被保留。在遇到换行符或者

元素时才会换行。

pre-wrap: 连续的空白符会被保留。在遇到换行符或者

元素,或者需要为了填充line盒子时才会换行。

pre-line: 连续的空白符会被合并。在遇到换行符或者

元素,或者需要为了填充line盒子时会换行。

word-break

该属性指定怎样在单词内断行

normal: 使用默认的断行规则。

break-all: 对于non-CJK (中文/日文/韩文) 文本,可在任意字符间断行。

keep-all: CJK 文本不断行。 Non-CJK 文本表现同 normal。

word-spacing

跟letter-spacing差不多,不过这个是处理词间距,你可以用这个值增加(或减少)两个单词之间的距离。它的默认值是normal,一般为 0.25em。

will-change

这个属性是告诉浏览器该元素要变化了,这样浏览器可以在元素属性真正发生变化之前提前做好对应的优化准备工作。 这种优化可以将一部分复杂的计算工作提前准备好,使页面的反应更为快速灵敏。

normal: 浏览器执行默认优化。

scroll-position: 表示开发者希望在不久后改变滚动条的位置或者使之产生动画。

content: 表示开发者希望在不久后改变元素内容中的某些东西,或者使它们产生动画。

也可以指定明确的属性表示要变化的内容:

1

2

3

4

5

.will-be-animated {

will-change: top, left;

}

在这个属性出现之前,我们通常使用下面的小技巧提高元素的动画性能(这样可以让元素动画通过 GPU 计算) :

1

2

3

4

5

.will-be-animated {

transform: translate3d(0, 0, 0);

}

writing-mode

该属性控制文本是横向显示还是竖向显示。

horizontal-tb: 内容横向、从上至下显示。

vertical-rl: 内容竖向、从右至左显示。

vertical-lr: 内容竖向、从左至右显示。

:-webkit-autofill

该选择器会选择被浏览器自动填充的 input 元素(比如自动填充了账号密码等)。它给了你一个机会让你能改变这些被自动填充的 input 的样式。在 Chrome 里这些 input 默认是黄色背景。

-webkit-overflow-scrolling

该属性让我们能在 IOS 设备上实现元素内部的弹性滚动。它有两个值:

auto: 使用普通滚动,在 IOS 里会有中齿轮感。

normal: 使用弹性滚动。

-webkit-touch-callout

该属性能隐藏 IOS 设备上默认出现的呼出。例如当你按住某个目标时出现的浮动控制菜单。

none: 不显示呼出。

default: 显示呼出。

-webkit-scrollbar

隐藏元素的滚动条。

1

2

3

4

5

#container::-webkit-scrollbar {

display: none;

}

在 IE10 和 Edga 中使用以下方法:

1

2

3

4

5

html {

-ms-overflow-style: ms-autohiding-scrollbar;

}

Animatable

这里有个 CSS 中所有可以被动画的属性的列表。我们常常给透明度(opacity)、背景颜色(background-color)等等属性添加动画。其实也可以其他一些属性添加动画,例如 letter-spacing。

原文:http://www.ferecord.com/lets-look-50-interesting-css-properties-values.html

http://www.ferecord.com/lets-look-50-interesting-css-properties-values.html

html黑科技导入res,css黑科技相关推荐

  1. 我们的科技创新为何离黑科技如此遥远?

    我们的科技创新为何离黑科技如此遥远?(转) 文/歪道道 北京时间10月17,神舟十一号飞船发射成功.据悉,两名航天员将在太空驻留30天,与天宫二号交会对接,让中国离建造首个国际空间站又近了一步.有国外 ...

  2. 一文解析“硬科技、深科技、黑科技”

    "硬科技.深科技.黑科技"概念情况说明. 近年来,随着科技进步的日新月异,以技术创新为支撑和引领的经济社会发展变革越来越密集,对科技创新形态的描述也有了多样化的需求,从不同角度和维 ...

  3. unity打开一片黑_麦吉丽素颜三部曲俗话说的好,一黑毁所有! 天生黑皮肤,该怎么办!...

    俗话说的好,一黑毁所有!天生黑皮肤,我该怎么办!有着一颗白雪公主的心!无奈披上一身黑天鹅的皮 这个是一个皮肤变白的故事 教你少走冤枉路,不花冤枉钱 花三分钟看完,向烦人的黑皮肤说拜拜! 现在我就来看看 ...

  4. 黑链详解。黑链的含义

    在SEO这个领域范围内,作为2009年底大肆蔓延疯狂肆虐的一个行业-黑链接,大家是否很了解?这里排除道德底线的参考,Ray仅仅从技术角度谈一下黑链是什么. 黑链的含义: 黑链也就是平常所说的暗链,通俗 ...

  5. 黑猫投诉年度红黑榜:共享出行企业“领跑”黑榜

    远离消费陷阱,提升消费体验,黑猫投诉平台全天候服务,您的每一条投诉,都在改变这个世界.[投诉,就上黑猫] 新浪科技讯 3月7日消息,黑猫投诉平台[tousu.sina.com.cn ]重磅发布2018 ...

  6. 如何写好一篇科技论文?以Wiley科技刊为例(附视频)

    你是初次撰写科技论文的新手吗?尝试出版论文但无从下手?本文将以此前的Wiley学术顾问魏轩博士的线上讲座为基础,以Wiley科技刊为例,为您答疑解惑- 科技论文有哪些? 科技论文种类很多,包括原创论文 ...

  7. 2017全球硬科技创新大会今日开幕 科技大腕聚集共绘西安“硬科技”发展蓝图

    概要:2017全球硬科技创新大会今天在西安开幕. 来源:中国科技网 科技大腕聚集共绘西安"硬科技"发展蓝图 2017全球硬科技创新大会今天在西安开幕.本次大会参会人数超过5000人 ...

  8. 在SCSS文件中导入常规CSS文件?

    本文翻译自:Import regular CSS file in SCSS file? Is there anyway to import a regular CSS file with Sass's ...

  9. mac微软雅黑字体_“微软雅黑”有坑,小编向你推荐免费的开源字体

    今日,某公司实习生使用"微软雅黑"字体,被方正公司投诉.该公司宣称:公司损失达到2800万. 可能有些人有疑惑,"微软雅黑"不该是免费的么!今天,小编就来科普一 ...

  10. 计算机发展历史小报图片大全,【科技小报图片大全】科技小报简单又漂亮_科技小报内容资料大全_(2)_亲亲宝贝网...

    科技小报图片大全:科技的分类 生命科学 现代生命科学技术,在20世纪得到了空前的发展,特别是DNA双螺旋结构的发现和人类基因组计划的实施,更使得生命科学技术成为21世纪高新科技的主流.由于生命科学技术 ...

最新文章

  1. 如何写一篇不水的机器学习论文?这17页指南从建模、评估到写报告,手把手教你...
  2. python简单代码编写-Python | 编写一个简单的Excel处理脚本
  3. Linux 下 SVN 添加多个文件的方法
  4. 后台产品经理入门指南(下)
  5. python编写函数_浅谈Python 函数式编程
  6. Linux与Windows比较出的20个优势
  7. iot nb 曹淑敏 鹰潭_移动物联时代来啦 鹰潭一项成就为全球首个 江西力争在全国“四个领先”...
  8. redis 6.0 redis-proxy搭建
  9. 多元相关性分析_电子健康素养与中青年脑卒中患者健康行为的相关性分析
  10. 恩智浦智能车大赛2020_我院第十三届“恩智浦”杯智能车校内选拔赛宣讲会顺利举行...
  11. [源码和文档分享]基于C#和MYSQL数据库实现的课程自动考试系统
  12. element 方法返回的boolean被当成字符串了_quot;==quot;和 equals 方法有什么区别
  13. python输入变量输出常量_Python输入input、输出print
  14. 40页PPT,让你了解智能物联网应用场景需求与未来发展趋势
  15. php 模板 {{}},PHP模板技术
  16. SQL中cast和convert的区别
  17. 蛋糕瓜分殆尽 谁会成为下一个手游造富的加速器?
  18. windows使用scp远程传输文件的方法
  19. 论文笔记之Non-Local
  20. Visual Studio Code(插件篇):Visual Studio Code 必装的 10 个高效开发插件(扩展)

热门文章

  1. 【MOS管电平转换电路的一点思考】
  2. 使用proteus仿真集成运放构成的三角波发生电路
  3. VUE项目中打印/转换图片打印
  4. mumax3 linux安装教程
  5. malloc失败的一个原因
  6. web前端基础联系作业
  7. WPF快速学习--一布局
  8. 资源管理器多标签工具 QTTabbar 的安装与配置
  9. 萌新扫盲4—交换机级联?还是堆叠?
  10. 【搜索/tarjan找环】zznu-简单环路