当前位置:   CSS > 正文

围绕属性选择器中的空格有哪些规则?

css,css-selectors,css3,html,xml,jquery,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我正在阅读关于属性选择器的规范,但我找不到任何说明是否允许空格的内容.我猜测它在开始时,操作员之前和之后以及最后都是允许的.它是否正确?



1> BoltClock..:

关于属性选择器中的空格的规则在语法中说明.这是属性选择器的选择器3生成(一些标记用其等效字符串替换,用于说明; S*代表0或更多空白字符):

attrib
  : '[' S* [ namespace_prefix ]? IDENT S*
        [ [ '^=' |
            '$=' |
            '*=' |
            '=' |
            '~=' |
            '|=' ] S* [ IDENT | STRING ] S*
        ]? ']'
  ;

当然,语法对于想要了解如何编写属性选择器的人来说并不是非常有用,因为它适用于正在实现选择器引擎的人.

这是一个简单的英文解释:

属性选择器之前的空格

这在上面的产品中没有涉及,但第一个明显的规则是,如果要将属性选择器附加到另一个简单选择器或伪元素,请不要使用空格:

a[href]::after

如果这样做,则该空间将被视为后代组合子,而通用选择器隐含在属性选择器上以及可能跟随它的任何内容.换句话说,这些选择器彼此相同,但与上述不同:

a [href] ::after
a *[href] *::after

属性选择器内的空格

在括号内和比较运算符周围是否有任何空格并不重要; 我发现浏览器似乎把它们视为不在那里(但我没有进行过广泛的测试).根据语法,这些都是有效的,据我所见,在所有现代浏览器中都可以使用:

a[href]
a[ href ]
a[ href="http://stackoverflow.com" ]
a[href ^= "http://"]
a[ href ^= "http://" ]

(显然,突破^=用空格是不正确的.)

如果IE7和IE8正确实现了语法,那么它们也应该能够处理它们.

如果使用名称空间前缀,则前缀和属性名称之间不允许使用空格.

这些是不正确的:

unit[sh| quantity]
unit[ sh| quantity="200" ]
unit[sh| quantity = "200"]

这些是正确的:

unit[sh|quantity]
unit[ sh|quantity="200" ]
unit[sh|quantity = "200"]

属性值中的空格

但请注意上面属性值的引号; 如果你把它们遗漏了,并且你试图选择其属性在其值中有空格的东西,那么你会遇到语法错误.

这是不正确的:

div[class=one two]

这是对的:

div[class="one two"]

这是因为不带引号的属性值被视为标识符,其不包括空格(出于显而易见的原因),而引用的值被视为字符串.有关详细信息,请参阅此规范.

为了防止此类错误,我强烈建议始终引用属性值,无论是HTML,XHTML(必需),XML(必需),CSS还是jQuery(一旦需要).

属性值后的空格

从选择器4开始,属性选择器可以接受在属性值之后出现的标识符形式的标志.到目前为止,已经为区分大小写(或者更确切地说,不区分大小写)定义了一个标志:

div[data-foo="bar" i]

语法已更新如下:

attrib
  : '[' S* attrib_name ']'
    | '[' S* attrib_name attrib_match [ IDENT | STRING ] S* attrib_flags? ']'
  ;

attrib_name
  : wqname_prefix? IDENT S*

attrib_match
  : [ '=' |
      PREFIX-MATCH |
      SUFFIX-MATCH |
      SUBSTRING-MATCH |
      INCLUDE-MATCH |
      DASH-MATCH
    ] S*

attrib_flags
  : IDENT S*

用简单的英语:如果没有引用属性值(即它是一个标识符),attrib_flags则需要它之间的空格; 否则,如果引用属性值,则空格是可选的,但强烈建议为了便于阅读.两端之间attrib_flags和结束括号之间的空格是可选的.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/CSS/detail/6053
推荐阅读
  • 如何解决《如何在所有浏览器中获得完美的图像边框半径?》经验,为你挑选了1个好方法。css,cross-browser,css3,chrome,safari,go,ipad,firefox,webkit,DevBox,在线流程图,编程,编程问... [详细]

  • css3加内边框的方法:可以通过使用border属性和box-sizing属性来加内边框,如【box-sizing:border-box;】。box-sizing属性允许以某种方式定义某些属性,以适应指定区域。css3,内边框,css,ht... [详细]

  • 如何解决《Gecko是否等同于-webkit-mask或Gecko浏览器降级的奇特方式?》经验,为你挑选了1个好方法。css,firefox,gecko,webkit,css3,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,... [详细]

  • 如何解决《IE中的边界半径不起作用》经验,为你挑选了1个好方法。css,internet-explorer,rounding,css3,firefox,chrome,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,j... [详细]

  • 区别:1、CSS3是指CSS层叠样式表技术的升级版本;而CSS是指一种用来表现HTML或XML等文件样式的计算机语言。2、CSS3比CSS多了很多新特征,例如圆角效果、图形化边界、块阴影与文字阴影等等。css,css3,html,xml,w... [详细]

  • 如何解决《支持jQuery和触控设备的水平滑动滑块?》经验,为你挑选了4个好方法。javascript,jquery,jquery-plugins,css3,ipad,html,ios,iphone,算法,safari,DevBox,在线流... [详细]

  • 如何解决《jQueryanimatecssborder-radius属性(webkit,mozilla)》经验,为你挑选了1个好方法。jquery,border,css3,jquery-animate,webkit,css,DevBox,在... [详细]

  • 如何解决《水平CSS渐变?》经验,为你挑选了1个好方法。css,css3,webkit,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工... [详细]

  • 表设计避免使用保留字v$reserved_words中记录的都是关键字和保留字,reserved字段内容是Y表示这个保留字在标识符中使用。对于reserved为N的关键字,也可能会触发Oracle的bug,所以避免使用是最好的选择。下Syn... [详细]

  • 如何解决《使用CSS设置插入和开始框阴影》经验,为你挑选了2个好方法。css,css3,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工... [详细]

  • 如何解决《@media屏幕和(max-width:1024px)在CSS中意味着什么?》经验,为你挑选了5个好方法。css,css3,media-queries,iphone,ipad,go,DevBox,在线流程图,编程,编程问答,程序员... [详细]

  • 如何解决《使用JQuery我怎么能将每隔一行变成黑色?》经验,为你挑选了2个好方法。html,javascript,jquery,function,css3,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解... [详细]

  • 如何解决《是否有可能仅使用CSS/CSS3来剪切文本效果?》经验,为你挑选了1个好方法。css,css3,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开... [详细]

  • 如何解决《Ckeditor:我怎样才能在ckeditor中制作像h3,h4,h5这样的标签》经验,为你挑选了1个好方法。javascript,css,css3,ckeditor,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,... [详细]

  • 如何解决《对于输入类型,border-radius在Firefox中不起作用》经验,为你挑选了1个好方法。html,css,input,css3,webkit,firefox,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开... [详细]

  • 如何解决《防止孩子继承转换css3》经验,为你挑选了0个好方法。css,css3,html,go,webkit,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,... [详细]

  • 如何解决《使用CSS3box-shadow属性滚动延迟?》经验,为你挑选了2个好方法。css,macos,performance,firefox,css3,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析... [详细]

  • 如何解决《如何在滚动时实现水平条后面的视差》经验,为你挑选了1个好方法。javascript,html5,css3,parallax,css,html,webkit,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,j... [详细]

  • css3实现颜色渐变效果的方法:可以利用linear-gradient函数和radial-gradient函数分别实现线性渐变效果和径向渐变效果,如【linear-gradient(yellow,green)】。css3,颜色渐变,css,... [详细]

  • 如何解决《改变右边界的高度》经验,为你挑选了1个好方法。html,css,css3,go,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员... [详细]

相关标签
  

闽ICP备14008679号