整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CSS3 用户界面

SS3 用户界面

在 CSS3 中, 增加了一些新的用户界面特性来调整元素尺寸,框尺寸和外边框。

您将了解以下的用户界面属性:

  • resize

  • box-sizing

  • outline-offset


浏览器支持

表格中的数字表示支持该属性的第一个浏览器版本号。

紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。

属性




resize4.0不兼容5.04.0 -moz-4.015.0
box-sizing10.04.0 -webkit-8.029.02.0 -moz-5.13.1 -webkit-9.5
outline-offset4.0不兼容5.04.0 -moz-4.09.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属性和他们的浏览器支持的参考:

属性IEFirefoxChromeSafariOpera
alignment-adjust




alignment-baseline




@keyframes1016

12.1
animation1016

12.1
animation-name1016

12.1
animation-duration1016

12.1
animation-timing-function1016

12.1
animation-delay1016

12.1
animation-iteration-count1016

12.1
animation-direction1016

12.1
animation-play-state1016

12.1
appearance
3


backface-visibility10



background-clip944510.5
background-origin944510.5
background-size944510.5
baseline-shift




bookmark-label




bookmark-level




bookmark-target




border-bottom-left-radius945510.5
border-bottom-right-radius945510.5
border-image
1516611
border-image-outset




border-image-repeat




border-image-slice




border-image-source




border-image-width




border-radius945510.5
border-top-left-radius945510.5
border-top-right-radius945510.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-shadow94105.110.5
box-sizing8
105.19.5
color-profile




column-fill




column-gap10


11.1
column-rule10


11.1
column-rule-color10


11.1
column-rule-style10


11.1
column-rule-width10


11.1
column-span10


11.1
column-width10


11.1
columns10


11.1
column-count10


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-face93.64310
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
opacity9243.19
outline-offset



11
overflow-style




overflow-x92


overflow-y92


page




page-policy




perspective


5
perspective-origin




punctuation-trim




rendering-intent




resize
544
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-justify5



text-outline




text-overflow6743.111
text-shadow103.5449.5
text-wrap




transform1016

12.1
transform-origin1016

12.1
transform-style


5
transition101626
12.1
transition-property101626
12.1
transition-duration101626
12.1
transition-timing-function101626
12.1
transition-delay101626
12.1
word-break5.51543
word-wrap53.543.110.5

图标说明

对于某些属性,你会看到浏览器的图标和一个数字:

IE浏览器

火狐浏览器

Google Chrome浏览器

Safari浏览器

Opera浏览器

前缀-ms-的IE浏览器

前缀-moz-的火狐浏览器

前缀-webkit-的Google Chrome浏览器

前缀-webkit-的Safari浏览器

前缀-o-的Opera浏览器

前缀-xv-的Opera浏览器

944510.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,我们悄悄说。大家多多支持,多多转发,多多吐糟,才让我更有动力去多多分享。