【发布时间】:2019-07-08 05:48:15
【问题描述】:
我有一个包含图标的按钮,并且可以添加文本。此文本是可选的,可以在左侧或右侧。根据位置,图标的边距会有所不同。
这意味着:
- 如果图标在 left 手边,它应该有一个 margin-left 例如5 像素
- 如果它在 right 手边,margin-right 应该是例如10 像素
- 如果根本没有文字,图标边距应该是例如2px
有什么方法可以不添加额外的css(帮助程序)类,如is-right和不更改标记?也许有一些伪选择器,在这里可以提供帮助?
<button>
<span class="icon editIcon"></span>
Edit
</button>
<button>
Edit
<span class="icon editIcon"></span>
</button>
<button>
<span class="icon editIcon"></span>
</button>
【问题讨论】:
-
你的文字绝对需要在这里裸露吗?如果它被包裹在一个元素中,那会让事情变得更容易。
-
是的,我知道...然后我可以选择它。但在这种情况下,我无法包装文本元素。在最坏的情况下,我会添加辅助类,但我想避免它们
-
我个人看不到任何可以让您知道的选择器...所有像 :nth-... 这样的伪类都只考虑元素。 TextNodes 是 CSS 的二等公民。但也许有人知道方法。
-
还有is something making its way(目前只有Firefox实现:jsfiddle.net/t1mzL4xg)
标签: css css-selectors