2012-04-04 202 views
0

有沒有辦法獲得包含一些文本但不包含其他文本的<span>元素?我嘗試使用兩個具有相同ID的<span>元素,但它似乎沒有達到所需的效果。非連續範圍

編輯:多一點背景,雖然我不認爲這是一個確切的XY問題。

我現在有一個系統,我突出顯示已使用span:target專門鏈接的文本。問題是,這種做法一次只能做一個跨度,而且我希望專門鏈接到同一頁面上的多段文本。此外,這些細分市場互不相連以及,我不想突出顯示文字。也就是說,給定XYZXYZ序列,然後我希望突出顯示X文本,(如果它鏈接到),並且Z文本(如果鏈接的是),但不會顯示Y文本。

+5

我感覺到[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),真正的問題是什麼? (根據「包含」的含義,答案是「否」或「更多元素和絕對定位」)。 – Quentin 2012-04-04 11:17:40

+2

ID必須是文檔範圍內的唯一ID! – ComFreek 2012-04-04 11:17:43

+0

@Quentin:問題是我有兩個不相交的文本序列,如果它們被相同的目標ID定位*,我希望它們的樣式不同。 – Puppy 2012-04-04 11:29:02

回答

0

這是行不通的。 HTML是分層的,所以你不能把一個元素分解成不相交的部分。

此外,跨度本身就是連續的內容。

0

我假設你指的是在你的文本中想要不同的格式?

如果你的HTML看起來像這樣:

<span id="mySpan">Lorem Ipsum Dolor</span> 

而你要Ispum風格的不同,你可以這樣做:

<span id="mySpan">Lorem <span>Ipsum</span> Dolor</span> 

然後選擇覆蓋樣式這個 「內跨越」:

span#mySpan span 
{ 
    //styles for inner span text here 
} 
+0

我正在使用'span:target',我試着做類似的事情,所以'span:target span {// styles}',但它似乎對Ipsum文本沒有任何影響。此外,如果我需要解決問題,我不確定這種技術會如何應對。 – Puppy 2012-04-04 11:27:03

0

鏈接到包含元素並使用派生選擇器。

span:target span.highlightMe {} 
+0

這適用於簡單的Lorem Ispum Dolor案例,但如果我擁有Lorem Ipsum Dolor Lorem Ipsum Dolor之類的內容,並且希望應用於所有Lorems或所有Dolors或所有Ipsums,則不適用。 – Puppy 2012-04-04 12:03:51

+0

您似乎已經偏離了':target'的預期目的* long *方式。在那裏可以對已鏈接的內容進行樣式設置,不允許突出顯示任意內容位。你應該看看用一些程序邏輯動態生成span元素,無論是服務器端還是JS。 – Quentin 2012-04-04 12:06:05

+0

我正在設計已鏈接的內容。只是在這種情況下,與之相關的是相互分離的。 – Puppy 2012-04-04 12:06:35