2016-11-24 27 views
7

開頭的標籤有沒有什麼方法可以爲所有以某些前綴開頭的標籤指定樣式?所有以

例如:

tst-* { 
    display: block; 
    background: yellow; 
} 

<tst-some-tag>Some content</tst-some-tag>


我爲什麼要這樣選擇的原因是因爲我使用的角度和有大量的自定義組件。所有這些應顯示爲block。爲所有自定義元素指定display屬性可能會非常舒服,而不是每次添加類時使用它們。

+1

每個'HTML'標籤是針對某些特定的原因。如果你想將相同的樣式應用於不同的標籤,請使用'class'和style。 –

+1

您不能選擇一個標記名的部分。你必須添加類或者一個自定義的'data- *'屬性,並將解決方案應用於@to7be –

回答

3

如果要選擇元素通過類名你可以這樣做:如果你想選擇元素通過ID簡單地做到這一點[class^='class']

[id^='id']

在這兩種情況下,你選擇所有元素女巫開始與您放在單引號之間的文本,無論是通過class-name還是通過id。

變化也是可能的: div[class^='class']div[id^='id']

0

您可以添加其他類的角度這些元素這將具有相同的CSS

<tst-some-tag class="tst-class">Some content</tst-some-tag> 

您可以簡單地添加類,角一樣的jQuery way

var myEl = angular.element(document.querySelector('tst-some-tag')); 
myEl.addClass('tst-class'); 
+0

這不是一個選項,因爲'querySelector'方法使用CSS選擇器,所以你仍然不能使用'tst - *'建設。 我不明白'angular.element(document.querySelector('tst-some-tag'))'如何幫助,如果我仍然必須指定所有必須具有特定樣式的標籤。這意味着,我必須寫:'angular.element(document.querySelector('tst-some-tag,tst-some-tag-2,tst-some-tag-3 ... tst-some-tag- N'))' – ReasonX7

0

根據所有答案,最好的解決方案是編寫特定的類和將其添加到每個自定義元素。

.tst { 
    display: block; 
    background: yellow; 
} 

<tst-some-tag class="tst">Some content</tst-some-tag>