作者归档: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 吗?

可以在这里找到角色列表,但我看到有些人自己组成。是允许还是正确使用角色属性?

有什么想法吗?

html

答案

您看到的大多数角色都被定义为 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>

在列表之外,只有linknote是有效角色,因此链接角色将被应用,因为它首先出现。如果您使用自定义角色,请确保它们与 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 */
}