pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

屬性選擇器中的空格規(guī)則是什么?

What are the rules around whitespace in attribute selectors?(屬性選擇器中的空格規(guī)則是什么?)
本文介紹了屬性選擇器中的空格規(guī)則是什么?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

我正在閱讀關(guān)于 屬性選擇器的規(guī)范,但是如果允許空格,我找不到任何說(shuō)明.我猜它在開(kāi)頭,操作員之前和之后以及最后都是允許的.這是正確的嗎?

I'm reading the spec on attribute selectors, but I can't find anything that says if whitespace is allowed. I'm guessing it's allowed at the beginning, before and after the operator, and at the end. Is this correct?

推薦答案

屬性選擇器中的空格規(guī)則在語(yǔ)法中有說(shuō)明.這是屬性選擇器的 Selectors 3 產(chǎn)生式(一些標(biāo)記替換為它們的字符串用于說(shuō)明的等價(jià)物;S* 表示 0 個(gè)或多個(gè)空白字符):

The rules on whitespace in attribute selectors are stated in the grammar. Here's the Selectors 3 production for attribute selectors (some tokens substituted with their string equivalents for illustration; S* represents 0 or more whitespace characters):

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

當(dāng)然,對(duì)于希望了解如何編寫(xiě)屬性選擇器的人來(lái)說(shuō),語(yǔ)法并不是非常有用,因?yàn)樗菫?em>實(shí)現(xiàn)選擇器引擎的人準(zhǔn)備的.

Of course, the grammar isn't terribly useful to someone looking to understand how to write attribute selectors, as it's intended for someone who's implementing a selector engine.

這是一個(gè)簡(jiǎn)單的英文解釋:

Here's a plain-English explanation:

這在上面的產(chǎn)生式中沒(méi)有涉及,但第一個(gè)明顯的規(guī)則是,如果你將一個(gè)屬性選擇器附加到另一個(gè)簡(jiǎn)單的選擇器或偽元素上,不要使用空間:

This isn't covered in the above production, but the first obvious rule is that if you're attaching an attribute selector to another simple selector or a pseudo-element, don't use a space:

a[href]::after

如果這樣做,則該空間將被視為 后代組合符 相反,屬性選擇器和任何可能跟隨它的東西都隱含了通用選擇器.也就是說(shuō),這些選擇器是等價(jià)的,但與上面的不同:

If you do, the space is treated as a descendant combinator instead, with the universal selector implied on the attribute selector and anything that may follow it. In other words, these selectors are equivalent to each other, but different from the above:

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

屬性選擇器內(nèi)的空格

括號(hào)內(nèi)和比較運(yùn)算符周?chē)欠裼锌崭駸o(wú)關(guān)緊要;我發(fā)現(xiàn)瀏覽器似乎將它們視為不存在(但我尚未進(jìn)行廣泛測(cè)試).根據(jù)語(yǔ)法,這些都是有效的,據(jù)我所知,它們適用于所有現(xiàn)代瀏覽器:

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

^(或其他符號(hào))和 = 之間不允許有空格,因?yàn)樗鼈儽灰暈閱蝹€(gè)標(biāo)記,并且標(biāo)記不能分開(kāi).

Whitespace is not allowed between the ^ (or other symbol) and = as these are treated as a single token, and tokens cannot be broken apart.

如果 IE7 和 IE8 正確地實(shí)現(xiàn)了語(yǔ)法,它們應(yīng)該也能處理它們.

If IE7 and IE8 implement the grammar correctly, they should be able to handle them all as well.

如果使用 命名空間前綴,則不允許在前綴和屬性名稱(chēng).

If a namespace prefix is used, whitespace is not allowed between the prefix and the attribute name.

這些都不正確:

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

這些是正確的:

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

屬性值中的空格

但請(qǐng)注意上面屬性值的引號(hào);如果您將它們排除在外,并嘗試選擇其屬性值中包含空格的內(nèi)容,則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤.

Whitespace within the attribute value

But notice the quotes around the attribute values above; if you leave them out, and you try to select something whose attribute has spaces in its value you have a syntax error.

這是不正確的:

div[class=one two]

這是正確的:

div[class="one two"]

這是因?yàn)椴粠б?hào)的屬性值被視為標(biāo)識(shí)符,不包括空格(出于顯而易見(jiàn)的原因),而帶引號(hào)的值被視為字符串.有關(guān)詳細(xì)信息,請(qǐng)參閱本規(guī)范.

This is because an unquoted attribute value is treated as an identifier, which doesn't include whitespace (for obvious reasons), whereas a quoted value is treated as a string. See this spec for more details.

為防止此類(lèi)錯(cuò)誤,我強(qiáng)烈建議始終引用屬性值,無(wú)論是 HTML、XHTML(必需)、XML(必需)、CSS 還是 jQuery(需要一次).

To prevent such errors, I strongly recommend always quoting attribute values, whether in HTML, XHTML (required), XML (required), CSS or jQuery (once required).

從選擇器 4 開(kāi)始(在此答案的原始發(fā)布之后),屬性選擇器可以接受出現(xiàn)在屬性值之后的標(biāo)識(shí)符形式的標(biāo)志.定義了兩個(gè)與 字符大小寫(xiě)有關(guān)的標(biāo)志,一個(gè)用于不區(qū)分大小寫(xiě)匹配:

As of Selectors 4 (following the original publication of this answer), attribute selectors can accept flags in the form of an identifier appearing after the attribute value. Two flags have been defined pertaining to character case, one for case-insensitive matching:

div[data-foo="bar" i]

還有一個(gè)用于區(qū)分大小寫(xiě)的匹配(其添加 我參與了,盡管是 WHATWG 的代理):

And one for case-sensitive matching (whose addition I had a part in, albeit by proxy of the WHATWG):

ol[type="A" s]
ol[type="a" s]

語(yǔ)法已更新因此:

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*

簡(jiǎn)而言之:如果屬性值沒(méi)有被引用(即它是一個(gè)標(biāo)識(shí)符),它和 attrib_flags 之間需要空格;否則,如果引用屬性值,則空格是可選的,但為了便于閱讀,強(qiáng)烈建議使用.attrib_flags 和右括號(hào)之間的空格一如既往是可選的.

In plain English: if the attribute value is not quoted (i.e. it is an identifier), whitespace between it and attrib_flags is required; otherwise, if the attribute value is quoted then whitespace is optional, but strongly recommended for the sake of readability. Whitespace between attrib_flags and the closing bracket is optional as always.

這篇關(guān)于屬性選擇器中的空格規(guī)則是什么?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Style every third element?(每隔三個(gè)元素設(shè)置樣式?)
Why shouldn#39;t I use ID selectors in CSS?(為什么我不應(yīng)該在 CSS 中使用 ID 選擇器?)
What does img[class*=quot;alignquot;] mean in CSS?(CSS 中的 img[class*=“align] 是什么意思?)
CSS: Last element on line(CSS:最后一個(gè)元素)
How do I select every other div class element using just CSS (no js)(如何僅使用 CSS(無(wú) js)選擇所有其他 div 類(lèi)元素)
Tool for checking unused CSS selectors?(檢查未使用的 CSS 選擇器的工具?)
主站蜘蛛池模板: 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 铝合金电阻-无源谐波滤波器-上海稳达电讯设备厂 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 喷播机厂家_二手喷播机租赁_水泥浆洒布机-河南青山绿水机电设备有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 软启动器-上海能曼电气有限公司| 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 |