選擇文本節點我有以下HTML標記:與CSS
<h1>
<div class="sponsor">
<span>Hello</span>
</div>
World
</h1>
當我使用CSS選擇器h1
我得到Hello World
。
是否有任何CSS選擇器,我可以只採取文本節點?在這個例子中具體是World
?
編輯:
我不能不幸更改的標記和我有,因爲我與聚合RSS訂閱的系統中工作只使用CSS選擇器。
選擇文本節點我有以下HTML標記:與CSS
<h1>
<div class="sponsor">
<span>Hello</span>
</div>
World
</h1>
當我使用CSS選擇器h1
我得到Hello World
。
是否有任何CSS選擇器,我可以只採取文本節點?在這個例子中具體是World
?
編輯:
我不能不幸更改的標記和我有,因爲我與聚合RSS訂閱的系統中工作只使用CSS選擇器。
CSS無法做到這一點的當前狀態,檢查此鏈接:W3C
這裏的問題是,你寫在屏幕上的內容不會在DOM顯示:P。
另外::outside
似乎還沒有工作(至少對於我在Safari 6.0.3中),或者它根本不會產生所需的結果。
檢查我的小提琴,然後檢查DOM來源:JSfiddle
最後有屬性選擇a { content: attr(href);}
,使CSS能夠讀取DOM節點的屬性。目前似乎還沒有相應的innerHTML
。如果這是可能的,那將是非常棒的,而你可能會操縱標籤的內部標記。
感謝您的回答。我接受它,因爲它更詳細。 – giokokos 2013-03-26 18:20:03
定義了':: outside'的文檔在完成重寫之前已被廢棄。請參閱http://stackoverflow.com/questions/10419614/enable-support-for-css3-outside-pseudoelement/10424878#10424878此外,這個答案引用作爲屬性選擇器不是一個屬性選擇器 - 這是完全不同的東西,這只是一個CSS功能。最後,擁有一個與「innerHTML」相當的CSS是沒有意義的 - 「innerHTML」是一個用於處理HTML的API,而CSS只是CSS。 – BoltClock 2015-03-05 14:46:40
簡短的答案是否定的。這個例子中的"World"
不是它自己的元素 - 因此沒有辦法選擇它。
你將不得不在這裏做的是風格h1
然後覆蓋與div.sponsor
樣式。舉例來說,如果你想「世界」在這裏有一個黑底白字的文本,你woud使用類似的東西:
h1 {
background:black;
color:white;
}
h1 div.sponsor {
background:white;
color:black;
}
然而不幸的是,這不會,如果你只想要單詞「世界工作「風格和你的標記不僅僅是在<div>Hello</div> World Foo
,例如。
我不相信這是純粹的CSS風格只是「世界」在這種情況下。
所以用純CSS來選擇文本'World'是不可能的,不是嗎? – giokokos 2013-03-26 16:39:06
不,不幸的不是! – 2013-03-26 17:57:34
我也遇到了同樣的問題,我無法觸摸標記,並與js無法控制。 我需要隱藏div元素中的文本節點,但元素保持可見。 因此,這裏是我的解決方案:
標記:
<div id="settings_signout_and_help">
<a id="ctl00_btnHelpDocs" class="ico icoHelp" href="http://" Help Guide</a>
Signed in as: <a id="ctl00_lUsr" href="Profile.aspx">some</a>
<a href="Logout.aspx">Home</a>
Sign out
</div>
CSS:
#settings_signout_and_help {
font-size: 1px !important;
}
#settings_signout_and_help a {
font-size: 13px !important;
}
希望這有助於傢伙!
位的一種解決方法:
h1 {
color: red;
}
h1 * {
color: lime;
}
<h1>
<div class="sponsor">
<span>Hello</span>
</div>
World
</h1>
我有一個類似的問題,我不得不刪除從一個C#函數生成的html「世界」的文字。
我在'h1'元素上設置字體大小爲0,然後將我的CSS應用於div類。基本上隱藏額外的文本,但保持div的內容。
我不知道如何與剛剛CSS做,但是......
使用jQuery,你可以選擇所有的內部除了東西的元素及其子元素中
$(「H1 :not(h1> div)「).css() 並在裏面放置任何你想要的CSS效果。
http://stackoverflow.com/questions/5688712/is-there-a-css-selector-for-text-nodes-elements – 2013-03-26 16:10:10
把它放在一個單獨的跨度... – 2013-03-26 16:10:12
你可以將更改應用於'h1 '然後用'.sponsor'撤銷它們。這取決於你想要做什麼。 – gaynorvader 2013-03-26 16:11:45