百科狗-知识改变命运!
--

sass:selector - 选择器模块 - scss 内置模块

是丫丫呀1年前 (2023-11-21)阅读数 22#技术干货
文章标签选择器

sass:selector

选择器值

此模块中的函数检查和操作选择器。每当他们返回一个选择器时,它总是一个逗号分隔的列表(选择器列表),其中包含空格分隔的列表(复杂选择器),其中包含不带引号的字符串(复合选择器)。例如,选择器.main aside:hover,.sidebar p将返回为:

@debug ((unquote(".main") unquote("aside:hover")),
       (unquote(".sidebar") unquote("p")));
// .main aside:hover, .sidebar p

这些函数的选择器参数可能具有相同的格式,但它们也可以只是普通字符串(带引号或不带引号)或组合。例如,".main aside:hover,.sidebar p"是一个有效的选择器参数。


selector.is-superselector()

selector.is-superselector($super, $sub)
is-superselector($super, $sub) //=> boolean

返回选择器$super是否匹配选择器$sub匹配的所有元素。即使$super匹配的元素多于$sub,仍然返回true。$super和$sub选择器可能包含占位符选择器,但不包含父选择器。

@debug selector.is-superselector("a", "a.disabled"); // true
@debug selector.is-superselector("a.disabled", "a"); // false
@debug selector.is-superselector("a", "sidebar a"); // true
@debug selector.is-superselector("sidebar a", "a"); // false
@debug selector.is-superselector("a", "a"); // true


selector.append()

selector.append($selectors...)
selector-append($selectors...) //=> selector

$selectors没有后代组合器的组合——也就是说,它们之间没有空格。如果其中的任何选择器$selectors是选择器列表,则每个复杂选择器单独组合。$selectors可能包含占位符选择器,但不包含父选择器。

另请参阅selector.nest()

@debug selector.append("a", ".disabled"); // a.disabled
@debug selector.append(".accordion", "__copy"); // .accordion__copy
@debug selector.append(".accordion", "__copy, __image");
// .accordion__copy, .accordion__image


selector.extend()

selector.extend($selector, $extendee, $extender)
selector-extend($selector, $extendee, $extender) //=> selector 

$selector与@extend规则一样扩展。$selector返回使用以下@extend规则修改的副本:

#{$extender} {
    @extend #{$extendee};
}

换句话说,将$extendee内的所有实例$selector替换为$extendee,$extender。如果$selector不包含$extendee,则按原样返回。

$extendee,$extender和选择$selector器可以包含占位符选择器,但不能包含父选择器。

另请参阅selector.replace()

@debug selector.extend("a.disabled", "a", ".link"); // a.disabled, .link.disabled
@debug selector.extend("a.disabled", "h1", "h2"); // a.disabled
@debug selector.extend(".guide .info", ".info", ".content nav.sidebar");
// .guide .info, .guide .content nav.sidebar, .content .guide nav.sidebar


selector.nest()

selector.nest($selectors...)
selector-nest($selectors...) //=> selector 

组合$selector起来,就好像它们在样式表中相互嵌套一样。$selector可能包含占位符选择器。与其他选择器函数不同,除了第一个选择器之外,它们都可能包含父选择器。

另请参阅selector.append()

@debug selector.nest("ul", "li"); // ul li
@debug selector.nest(".alert, .warning", "p"); // .alert p, .warning p
@debug selector.nest(".alert", "&:hover"); // .alert:hover
@debug selector.nest(".accordion", "&__copy"); // .accordion__copy


selector.parse()

selector.parse($selector)
selector-parse($selector) //=> selector 

$selector以选择器值格式返回。

@debug selector.parse(".main aside:hover, .sidebar p");
// ((unquote(".main") unquote("aside:hover")),
//  (unquote(".sidebar") unquote("p")))


selector.replace()

selector.replace($selector, $original, $replacement)
selector-replace($selector, $original, $replacement) //=> selector 

返回的$selector所有实例$original替换为的副本$replacement

这利用@extend规则的智能统一,确保$replacement无缝融入$selector。如果$selector不包含$original,则按原样返回。

、和选择$selector器可以包含占位符选择器,但不能包含父选择器。$original$replacement

另请参阅selector.extend()

@debug selector.replace("a.disabled", "a", ".link"); // .link.disabled
@debug selector.replace("a.disabled", "h1", "h2"); // a.disabled
@debug selector.replace(".guide .info", ".info", ".content nav.sidebar");
// .guide .content nav.sidebar, .content .guide nav.sidebar


selector.unify()

selector.unify($selector1, $selector2)
selector-unify($selector1, $selector2) //=> selector | null 

sass:selector - 选择器模块 - scss 内置模块

返回一个选择器,它只匹配与$selector1和匹配的元素$selector2

null如果$selector1$selector2匹配任何相同的元素,或者没有选择器可以表达它们的重叠,则返回。

@extend与规则生成的选择器一样,返回的选择器不能保证匹配两者匹配的所有元素$selector1$selector2如果它们都是复杂选择器。

@debug selector.unify("a", ".disabled"); // a.disabled
@debug selector.unify("a.disabled", "a.outgoing"); // a.disabled.outgoing
@debug selector.unify("a", "h1"); // null
@debug selector.unify(".warning a", "main a"); // .warning main a, main .warning a


selector.simple-selectors()

selector.simple-selectors($selector)
simple-selectors($selector) //=> list 

返回中的简单选择器列表$selector。$selector必须是包含复合选择器的单个字符串。这意味着它可能不包含组合符(包括空格)或逗号。返回的列表以逗号分隔,简单的选择器是不带引号的字符串。

@debug selector.simple-selectors("a.disabled"); // a, .disabled
@debug selector.simple-selectors("main.blog:after"); // main, .blog, :after

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)