岁数大了,忘了许多事,真正验证了,好记性不如烂笔头
作者归档:wp
CSS弹性盒子Flex:flex-grow、flex-shrink、flex-basis属性
flex-grow、flex-shrink、flex-basis三个属性的作用:
在flex布局中,父元素在不同宽度下,子元素是如何分配父元素空间的。
(注意:这三个属性都是在子元素上设置的,下面小编要讲的是父元素,指以flex布局的元素(display:flex))
小编这里先教一下大家如何快速记住这三个属性:
首先是 flex-basis ,basis英文意思是<主要成分>,所以他和width放在一起时,肯定把width干掉,basis遇到width时就会说我才是最主要的成分,你是次要成分,所以见到我的时候你要靠边站。
其次是 flex-grow,grow英文意思是<扩大,扩展,增加>,这就代表当父元素的宽度大于子元素宽度之和时,并且父元素有剩余,这时,flex-grow就会说我要成长,我要长大,怎么样才能成长呢,当然是分享父元素的空间了。见下面第二个属性的内容
最后是 flex-shrink, shrink英文意思是<收缩,>,这就代表当父元素的宽度小于子元素宽度之和时,并且超出了父元素的宽度,这时,flex-shrink就会说外面的世界太苦了,我还是回到父亲的怀抱中去吧!因此,flex-shrink就会按照一定的比例进行收缩。
HTML 中 “role” 属性的目的是什么?
我一直在看某些人的工作中的角色属性。我也用它,但我不确定它的效果。
例如:
<header id="header" role="banner"> Header stuff in here </header>
要么:
<section id="facebook" role="contentinfo"> Facebook stuff in here </section>
要么:
<section id="main" role="main"> Main content stuff in here </section>
这个角色属性是否必要?
这个属性对于语义更好吗?
它改善了 SEO 吗?
可以在这里找到角色列表,但我看到有些人自己组成。是允许还是正确使用角色属性?
有什么想法吗?
答案
您看到的大多数角色都被定义为 ARIA 1.0 的一部分,然后被合并到 HTML5 中。一些新的 HTML5 元素(对话框,主要等)甚至基于原始的 ARIA 角色。
http://www.w3.org/TR/wai-aria/
除了本机语义元素之外,还有两个主要原因可以使用角色。
原因#1。覆盖没有适合宿主语言元素的角色,或者由于各种原因,使用了语义较少的元素。
在此示例中,使用了链接,即使生成的功能比导航链接更像按钮。
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
屏幕阅读器会将其视为按钮(而不是链接),您可以使用 CSS 属性选择器来避免 class-itis 和 div-itis。
*[role="button"] { /* style these a buttons w/o relying on a .button class */ }
原因#2。备份本机元素的角色,以支持实现 ARIA 角色但尚未实现本机元素角色的浏览器。
例如,浏览器多年来一直支持 “main” 角色,但它是 HTML5 的一个相对新增的版本,因此很多浏览器还不支持<main>
的语义。
<main role="main">…</main>
这在技术上是多余的,但可以帮助一些用户并且不会伤害任何用户。几年后,这种技术可能变得不必要了。
你还写道:
我看到有些人自己组成。是允许还是正确使用角色属性?
这是属性的有效使用,除非未包含真实角色。浏览器将在令牌列表中应用第一个已识别的角色。
<span role="foo link note bar">...</a>
在列表之外,只有link
和note
是有效角色,因此链接角色将被应用,因为它首先出现。如果您使用自定义角色,请确保它们与 ARIA 中的任何已定义角色或您正在使用的主机语言(HTML,SVG,MathML 等)不冲突。
据我了解,角色最初是由 XHTML 定义的,但已被弃用。但是,它们现在由 HTML 5 定义,请参见此处: https : //www.w3.org/WAI/PF/aria/roles#abstract_roles_header
role 属性的目的是识别解析软件元素(及其子元素)作为 Web 应用程序一部分的确切功能。这主要是作为屏幕阅读器的可访问性事物,但我也可以看到它对嵌入式浏览器和屏幕抓取器很有用。为了对不寻常的 HTML 客户端有用,需要将属性设置为我链接的规范中的一个角色。如果你自己构成,那么这个 “未来” 功能就无法运作 – 评论会更好。
实用性: http : //www.accessibleculture.org/articles/2011/04/html5-aria-2011/
这个角色属性是否必要?
答: 是的 。
-
当语言未定义自己的角色属性时,角色属性对于支持可访问富 Internet 应用程序( WAI-ARIA )以在基于 XML 的语言中定义角色是必需的。
-
虽然这是Protocols and Formats Working Group发布角色属性的原因,但该属性也有更多的一般用例。
它为您提供:
-
无障碍
-
设备适配
-
服务器端处理
-
网页模块命名规范
- 命名避免使用中文字符(如id=“内容”);
- 命名不能以数字开头(如id=“1header”);
- 命名不能使用关键字(如id=“div”);
- 命名应尽量用最少的字母表达含义,使之简明、易懂。
在网页开发中,常用驼峰式命名和帕斯卡命名两种命名方式。其具体解释如下所述。
驼峰式命名:除第一个单词外后面的单词首字母都要大写,其余小写,如navOne。
帕斯卡命名:每个单词之间用“_”连接,如nav_one。
下面列举网页中常用的一些命名。
模块 | 命名 | 模块 | 命名 |
---|---|---|---|
头部 | header | 标签页 | tab |
内容 | content/container | 文章列表 | list |
尾部 | footer | 提示信息 | msg |
导航 | nav | 小技巧 | tips |
子导航 | subnav | 栏目标题 | title |
侧栏 | sidebar | 加入 | joinus |
栏目 | column | 指南 | guild |
左右中 | left right center | 服务 | service |
登录条 | loginbar | 注册 | register |
标志 | logo | 状态 | status |
广告 | banner | 投票 | vote |
页面主体 | main | 合作伙伴 | partner |
热点 | hot | CSS文件 | 命名 |
新闻 | news | 主要的 | master.css |
下载 | download | 模块 | module.css |
菜单 | menu | 基本共用 | base.css |
子菜单 | submenu | 布局,版面 | layout.css |
搜索 | search | 主题 | themes.css |
友情链接 | frIEndlink | 专栏 | columns.css |
页眉 | header | 文字 | font.css |
页脚 | footer | 表单 | forms.css |
版权 | copyright | 补丁 | mend.css |
滚动 | scroll | 打印 | print.css |
@font-face的format属性
format :字体的格式,主要用于浏览器识别,一般有以下几种——truetype,opentype,truetype-aat,embedded-opentype,avg等。
对于@font-face而言,兼容性问题就是各浏览器所能识别的字体格式不尽相同。
TrueType格式(.ttf)
Windows和Mac上常见的字体格式,是一种原始格式,因此它并没有为网页进行优化处理。
浏览器支持:IE9+,FireFox3.5+,Chrome4.0+,Safari3+,Opera10+,IOS Mobile Safari4.2+
OpenType格式(.otf)
以TrueType为基础,也是一种原始格式,但提供更多的功能。
浏览器支持:FireFox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,IOS Mobile Safari4.2+
Web Open Font格式(.woff)
针对网页进行特殊优化,因此是Web字体中最佳格式,它是一个开放的TrueType/OpenType的压缩版,同时支持元数据包的分离。
浏览器支持:IE9+, FireFox3.5+, Chrome6+, Safari3.6+,Opera11.1+
Embedded Open Type格式(.eot)
IE专用字体格式,可以从TrueType格式创建此格式字体。
浏览器支持:IE4+
SVG格式(.svg)
基于SVG字体渲染的格式。
浏览器支持:Chrome4+, Safari3.1+, Opera10.0+, IOS Mobile Safari3.2+
为解决兼容性问题,Paul Irish写了称为Bulletproof的一个独特的@font-face语法:
@font-face {
font-family: ‘YourWebFontName’;
src: url(‘YourWebFontName.eot’); /* IE9 Compat Modes */
src: url(‘YourWebFontName.eot?#iefix’) format(‘embedded-opentype’), /* IE6-IE8 */
url(‘YourWebFontName.woff’) format(‘woff’), /* Modern Browsers */
url(‘YourWebFontName.ttf’) format(‘truetype’), /* Safari, Android, iOS */
url(‘YourWebFontName.svg#YourWebFontName’) format(‘svg’); /* Legacy iOS */
}