與CSS

2013-03-26 41 views
5

選擇文本節點我有以下HTML標記:與CSS

<h1> 
    <div class="sponsor"> 
      <span>Hello</span> 
    </div> 
    World 
</h1> 

當我使用CSS選擇器h1我得到Hello World

是否有任何CSS選擇器,我可以只採取文本節點?在這個例子中具體是World

編輯:

我不能不幸更改的標記和我有,因爲我與聚合RSS訂閱的系統中工作只使用CSS選擇器。

+1

http://stackoverflow.com/questions/5688712/is-there-a-css-selector-for-text-nodes-elements – 2013-03-26 16:10:10

+2

把它放在一個單獨的跨度... – 2013-03-26 16:10:12

+2

你可以將更改應用於'h1 '然後用'.sponsor'撤銷它們。這取決於你想要做什麼。 – gaynorvader 2013-03-26 16:11:45

回答

3

CSS無法做到這一點的當前狀態,檢查此鏈接:W3C

這裏的問題是,你寫在屏幕上的內容不會在DOM顯示:P。

另外::outside似乎還沒有工作(至少對於我在Safari 6.0.3中),或者它根本不會產生所需的結果。

檢查我的小提琴,然後檢查DOM來源:JSfiddle

最後有屬性選擇a { content: attr(href);},使CSS能夠讀取DOM節點的屬性。目前似乎還沒有相應的innerHTML。如果這是可能的,那將是非常棒的,而你可能會操縱標籤的內部標記。

+0

感謝您的回答。我接受它,因爲它更詳細。 – giokokos 2013-03-26 18:20:03

+2

定義了':: 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

3

這是一個問題幾乎相反我上週問:Is it possible to select the very first element within a container that's otherwise pure text without using classes or identifiers in pure CSS?

簡短的答案是否定的。這個例子中的"World"不是它自己的元素 - 因此沒有辦法選擇它。

你將不得不在這裏做的是風格h1然後覆蓋與div.sponsor樣式。舉例來說,如果你想「世界」在這裏有一個黑底白字的文本,你woud使用類似的東西:

h1 { 
    background:black; 
    color:white; 
} 

h1 div.sponsor { 
    background:white; 
    color:black; 
} 

然而不幸的是,這不會,如果你只想要單詞「世界工作「風格和你的標記不僅僅是在<div>Hello</div> World Foo,例如。

我不相信這是純粹的CSS風格只是「世界」在這種情況下。

+0

所以用純CSS來選擇文本'World'是不可能的,不是嗎? – giokokos 2013-03-26 16:39:06

+0

不,不幸的不是! – 2013-03-26 17:57:34

1

我也遇到了同樣的問題,我無法觸摸標記,並與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>&nbsp;&nbsp; 
      <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; 
} 

希望這有助於傢伙!

1

位的一種解決方法:

h1 { 
 
    color: red; 
 
} 
 
h1 * { 
 
    color: lime; 
 
}
<h1> 
 
    <div class="sponsor"> 
 
      <span>Hello</span> 
 
    </div> 
 
    World 
 
</h1>

0

我有一個類似的問題,我不得不刪除從一個C#函數生成的html「世界」的文字。

我在'h1'元素上設置字體大小爲0,然後將我的CSS應用於div類。基本上隱藏額外的文本,但保持div的內容。

-2

我不知道如何與剛剛CSS做,但是......

使用jQuery,你可以選擇所有的內部除了東西的元素及其子元素中

$(「H1 :not(h1> div)「).css() 並在裏面放置任何你想要的CSS效果。