SS3 用户界面
在 CSS3 中, 增加了一些新的用户界面特性来调整元素尺寸,框尺寸和外边框。
您将了解以下的用户界面属性:
resize
box-sizing
outline-offset
浏览器支持
表格中的数字表示支持该属性的第一个浏览器版本号。
紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。
| 属性 | |||||
|---|---|---|---|---|---|
| resize | 4.0 | 不兼容 | 5.04.0 -moz- | 4.0 | 15.0 |
| box-sizing | 10.04.0 -webkit- | 8.0 | 29.02.0 -moz- | 5.13.1 -webkit- | 9.5 |
| outline-offset | 4.0 | 不兼容 | 5.04.0 -moz- | 4.0 | 9.5 |
CSS3 调整尺寸(Resizing)
CSS3中,resize属性指定一个元素是否应该由用户去调整大小。
这个 div 元素由用户调整大小。 (在 Firefox 4+, Chrome, 和 Safari中)
CSS代码如下:
实例
由用户指定一个div元素尺寸大小:
div{resize:both; overflow:auto;}
CSS3 方框大小调整(Box Sizing)
box-sizing 属性允许您以确切的方式定义适应某个区域的具体内容。
实例
规定两个并排的带边框方框:
div{box-sizing:border-box; -moz-box-sizing:border-box; /* Firefox */width:50%; float:left;}
尝试一下 »
CSS3 外形修饰(outline-offset )
outline-offset 属性对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。
轮廓与边框有两点不同:
轮廓不占用空间
轮廓可能是非矩形
这个 div 在边框之外 15 像素处有一个轮廓。
CSS 代码如下:
实例
规定边框边缘之外 15 像素处的轮廓:
div{border:2pxsolidblack; outline:2pxsolidred; outline-offset:15px;}
新的用户界面特性
| 属性 | 说明 | CSS |
|---|---|---|
| appearance | 允许您使一个元素的外观像一个标准的用户界面元素 | 3 |
| box-sizing | 允许你以适应区域而用某种方式定义某些元素 | 3 |
| icon | 为创作者提供了将元素设置为图标等价物的能力。 | 3 |
| nav-down | 指定在何处使用箭头向下导航键时进行导航 | 3 |
| nav-index | 指定一个元素的Tab的顺序 | 3 |
| nav-left | 指定在何处使用左侧的箭头导航键进行导航 | 3 |
| nav-right | 指定在何处使用右侧的箭头导航键进行导航 | 3 |
| nav-up | 指定在何处使用箭头向上导航键时进行导航 | 3 |
| outline-offset | 外轮廓修饰并绘制超出边框的边缘 | 3 |
| resize | 指定一个元素是否是由用户调整大小 |
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
SS3 浏览器支持
对CSS3是没有一个W3C标准的,但全部的主流浏览器都已经支持许多新的功能。下面是有关所有的新的CSS3属性和他们的浏览器支持的参考:
| 属性 | IE | Firefox | Chrome | Safari | Opera |
|---|---|---|---|---|---|
| alignment-adjust | |||||
| alignment-baseline | |||||
| @keyframes | 10 | 16 | 12.1 | ||
| animation | 10 | 16 | 12.1 | ||
| animation-name | 10 | 16 | 12.1 | ||
| animation-duration | 10 | 16 | 12.1 | ||
| animation-timing-function | 10 | 16 | 12.1 | ||
| animation-delay | 10 | 16 | 12.1 | ||
| animation-iteration-count | 10 | 16 | 12.1 | ||
| animation-direction | 10 | 16 | 12.1 | ||
| animation-play-state | 10 | 16 | 12.1 | ||
| appearance | 3 | ||||
| backface-visibility | 10 | ||||
| background-clip | 9 | 4 | 4 | 5 | 10.5 |
| background-origin | 9 | 4 | 4 | 5 | 10.5 |
| background-size | 9 | 4 | 4 | 5 | 10.5 |
| baseline-shift | |||||
| bookmark-label | |||||
| bookmark-level | |||||
| bookmark-target | |||||
| border-bottom-left-radius | 9 | 4 | 5 | 5 | 10.5 |
| border-bottom-right-radius | 9 | 4 | 5 | 5 | 10.5 |
| border-image | 15 | 16 | 6 | 11 | |
| border-image-outset | |||||
| border-image-repeat | |||||
| border-image-slice | |||||
| border-image-source | |||||
| border-image-width | |||||
| border-radius | 9 | 4 | 5 | 5 | 10.5 |
| border-top-left-radius | 9 | 4 | 5 | 5 | 10.5 |
| border-top-right-radius | 9 | 4 | 5 | 5 | 10.5 |
| box-decoration-break | |||||
| box-align | |||||
| box-direction | |||||
| box-flex | 12.1 | ||||
| box-flex-group | |||||
| box-lines | |||||
| box-ordinal-group | |||||
| box-orient | |||||
| box-pack | |||||
| box-shadow | 9 | 4 | 10 | 5.1 | 10.5 |
| box-sizing | 8 | 10 | 5.1 | 9.5 | |
| color-profile | |||||
| column-fill | |||||
| column-gap | 10 | 11.1 | |||
| column-rule | 10 | 11.1 | |||
| column-rule-color | 10 | 11.1 | |||
| column-rule-style | 10 | 11.1 | |||
| column-rule-width | 10 | 11.1 | |||
| column-span | 10 | 11.1 | |||
| column-width | 10 | 11.1 | |||
| columns | 10 | 11.1 | |||
| column-count | 10 | 11.1 | |||
| crop | |||||
| dominant-baseline | |||||
| drop-initial-after-adjust | |||||
| drop-initial-after-align | |||||
| drop-initial-before-adjust | |||||
| drop-initial-before-align | |||||
| drop-initial-size | |||||
| drop-initial-value | |||||
| fit | |||||
| fit-position | |||||
| float-offset | |||||
| @font-face | 9 | 3.6 | 4 | 3 | 10 |
| font-size-adjust | 2 | ||||
| font-stretch | |||||
| grid-columns | |||||
| grid-rows | |||||
| hanging-punctuation | |||||
| hyphenate-after | |||||
| hyphenate-before | |||||
| hyphenate-characters | |||||
| hyphenate-lines | |||||
| hyphenate-resource | |||||
| hyphens | |||||
| icon | |||||
| image-orientation | |||||
| image-resolution | |||||
| inline-box-align | |||||
| line-stacking | |||||
| line-stacking-ruby | |||||
| line-stacking-shift | |||||
| line-stacking-strategy | |||||
| mark | |||||
| mark-after | |||||
| mark-before | |||||
| marks | |||||
| marquee-direction | |||||
| marquee-play-count | |||||
| marquee-speed | |||||
| marquee-style | |||||
| move-to | |||||
| nav-down | 11.5 | ||||
| nav-index | 11.5 | ||||
| nav-left | 11.5 | ||||
| nav-right | 11.5 | ||||
| nav-up | 11.5 | ||||
| opacity | 9 | 2 | 4 | 3.1 | 9 |
| outline-offset | 11 | ||||
| overflow-style | |||||
| overflow-x | 9 | 2 | |||
| overflow-y | 9 | 2 | |||
| page | |||||
| page-policy | |||||
| perspective | 5 | ||||
| perspective-origin | |||||
| punctuation-trim | |||||
| rendering-intent | |||||
| resize | 5 | 4 | 4 | ||
| rest | |||||
| rest-after | |||||
| rest-before | |||||
| rotation | |||||
| rotation-point | |||||
| ruby-align | |||||
| ruby-overhang | |||||
| ruby-position | |||||
| ruby-span | |||||
| size | |||||
| string-set | |||||
| target | |||||
| target-name | |||||
| target-new | |||||
| target-position | |||||
| text-align-last | |||||
| text-emphasis | |||||
| text-height | |||||
| text-justify | 5 | ||||
| text-outline | |||||
| text-overflow | 6 | 7 | 4 | 3.1 | 11 |
| text-shadow | 10 | 3.5 | 4 | 4 | 9.5 |
| text-wrap | |||||
| transform | 10 | 16 | 12.1 | ||
| transform-origin | 10 | 16 | 12.1 | ||
| transform-style | 5 | ||||
| transition | 10 | 16 | 26 | 12.1 | |
| transition-property | 10 | 16 | 26 | 12.1 | |
| transition-duration | 10 | 16 | 26 | 12.1 | |
| transition-timing-function | 10 | 16 | 26 | 12.1 | |
| transition-delay | 10 | 16 | 26 | 12.1 | |
| word-break | 5.5 | 15 | 4 | 3 | |
| word-wrap | 5 | 3.5 | 4 | 3.1 | 10.5 |
图标说明
对于某些属性,你会看到浏览器的图标和一个数字:
IE浏览器
火狐浏览器
Google Chrome浏览器
Safari浏览器
Opera浏览器
前缀-ms-的IE浏览器
前缀-moz-的火狐浏览器
前缀-webkit-的Google Chrome浏览器
前缀-webkit-的Safari浏览器
前缀-o-的Opera浏览器
前缀-xv-的Opera浏览器
| 9 | 4 | 4 | 5 | 10.5 |
数字表示是第一次支持该属性的浏览器版本。
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
SS3中的word-wrap、word-break、white-space想必大家都接触过,今天我们来一起温故而知新。
当我们在网站编辑文章的时候难免会遇到文字过长导致溢出的情况,仔细观察会发现是我们的CSS没加文字截断,然后加上word-break:break-all就搞定了。下面给大家介绍CSS3中控制文字换行的三个属性:
一、word-wrap
1、定义
word-wrap 属性允许长单词或 URL 地址换行到下一行。
2、语法和参数
word-wrap:normal(默认)|break-word normal:允许内容顶开指定的容器边界,如果单词超长,会冲出边界(在当前行显示,不会换行)。 break-word: 内容将在边界内换行,当单词在当前行放不下时,会自动切换到下一行,必要时会触发word-break(注意:请分辨清楚word-break和break-word这俩个是不同的东西,一为属性另为参数)。 注:各个浏览器均能识别。
3、说明
word-wrap是控制是否“为词断行”的,设置或检索当前行超过指定容器的边界时是否断开转行。中文没有任何问题,英文语句也没问题。但是对于长串的英文,就不起作用。
4、例子
congratulation这个单词属于长串英文,word-wrap:break-word整个单词看成一个整体,如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断,这就是对于长串文字不起作用的解释。word-wrap:normal是默认情况,英文单词不被拆开。
5、总结
作用范围仅为div这类标准块级元素,th,td这类table元素虽然识别但是没有效果(如果为td,th加上宽度word-wrap在IE下是能够发挥效果的,但根据完全兼容性方便记忆角度上来说还是以前面的结论为准)。
二、word-break
1、定义
word-break 属性规定自动换行的处理方法。 提示:通过使用 word-break 属性,可以让浏览器实现在任意位置的换行。
2、语法和参数
word-break: normal(默认)|break-all|keep-all normal:依照亚洲语言和非亚洲语言的文本规则,允许在字内换行:中文则到边界处的汉字换行,英文则整个单词换行,如果出现某个单词长度过长,则会撑破容器,如果边框为固定属性,则后面部分将无法显示。 break-all:可以强行截断英文单词,强行换行。该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本。 keep-all:与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。即如果是中文,将把前后标点符号内的一个汉字短语整个换行,英文单词也整个换行。 注:Firefox、Opera不能识别。
3、说明
word-break:break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题(恰恰弥补了上面word-wrap:break-word对于长串文字不起作用的缺陷)。
4、例子
继续以上面congratulation这个单词属于长串英文,word-break:break-all它会把单词截断,该行末端就会变成类似conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了。 word-break:keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
5、总结
作用范围仅为div这类标准块级元素,th,td这类table元素虽然识别但是没有效果(经测试Chrome下word-break:break-all是有效果的,但根据完全兼容性方便记忆角度上来说还是以前面的结论为准)。Firefox,Opera是无法识别word-break的,更不用提Firefox下的th,td中使用word-break的效果了。
三、white-space
1、定义
word-spacing 属性增加或减少单词间的空白(即字间隔)。 该属性定义元素中字之间插入多少空白符。针对这个属性,“字” 定义为由空白符包围的一个字符串。如果指定为长度值,会调整字之间的通常间隔;所以,normal 就等同于设置为 0。允许指定负长度值,这会让字之间挤得更紧。 注释:允许使用负值。
2、语法和参数
white-space:normal | nowrap | pre-wrap | pre-line | inherit normal:默认,空白符会被浏览器忽略。 nowrap:文本不会换行,文本会在在同一行上继续,直到遇到
标签为止。 pre-wrap:保留空白符,但是正常地进行换行。 pre-line:合并空白符,但是保留换行符。 inherit:继承父元素的设置 注:各个浏览器均能识别。
3、说明
对于pre属性,其实就是HTML中连续的多个空白符会被合并,然后为了不让他合并(最常用的场合就是表示代码文字缩进)让其中的空白符继续保留而不需要我们增加额外的样式和标签来控制它的缩进和换行。pre标签的原理也是一样的内部默认有了个white-space:pre。 对于nowrap属性,这个是强制不换行核心,一般强制不换行就是利用这个属性。Firefox的div和td中,以及IE的div中,均没有问题。唯一的瑕疵就是在IE的td中会有一个问题,如果td没有指定宽度,则nowrap仍然有效,如果td有宽度,并且文字中无标点、无空格(例如中文长串文字),nowrap则不再有效。解决方式就是可以加word-break:keep-all;可以解决此问题。
你还在找3W的资料吗,如上可以让你清晰明了掌握它。
如果想要学习更多关于前端的干货,请进我Q群详聊:142991222,我们悄悄说。大家多多支持,多多转发,多多吐糟,才让我更有动力去多多分享。
*请认真填写需求信息,我们会在24小时内与您取得联系。