簡體   English   中英

如何改變顏色 <hr> 沒有CSS的XHTML中的元素?

[英]How to change color of <hr> element in XHTML without CSS?

W3標記驗證器顯示以下錯誤:

第10行,第11列:沒有屬性“顏色”您在文檔中使用了上面命名的屬性,但是您使用的文檔類型不支持該元素的該屬性。 此錯誤通常是由於使用框架的文檔未正確使用“嚴格”文檔類型(例如,必須使用“過渡”文檔類型來獲取“目標”屬性)或使用供應商專有擴展名(例如“ marginheight”(通常通過使用CSS來實現所需的效果來解決此問題)。

如果所使用的文檔類型不支持該元素本身,也可能導致此錯誤,因為未定義的元素將不具有支持的屬性; 在這種情況下,請參閱元素未定義的錯誤消息以獲取更多信息。
解決方法:檢查元素和屬性的拼寫和大小寫(記住XHTML均為小寫)和/或檢查所選文檔類型是否都允許它們,和/或使用CSS代替此屬性。 如果在使用元素將Flash Media合並到網頁中時收到此錯誤,請參閱有效Flash上​​的FAQ項。

我該如何糾正?

tl; dr:你不能。 不僅hr沒有color的XHTML屬性,它從未有過的顏色屬性,在任何HTML版本! 只需使用CSS。

更長的答案:
我不知道為什么你不想使用CSS。 但是,如果您真的很認真,這里就是解決方案。

代碼是否通過驗證對瀏覽器都沒有關系。 如果color屬性起作用,則不管DTD中是否有定義,它都起作用。

因此,您真正想做的不是使它正常工作 ,而只是使其得到驗證 而且,XHTML完全有可能。 請注意,但不是HTML。 這就是XHTML中的X的用途。 它是可擴展的!

因此,只需使用帶有DTD的XHTML DOCTYPE聲明,然后將color屬性的定義附加到它即可。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
  [
    <!ATTLIST hr color CDATA #IMPLIED>
  ]
>
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Colored hr without CSS</title>
 </head>
 <body>
  <hr color="red"/>
 </body>
</html>

你去那里,工作驗證XHTML文檔。 (盡管將其另存為.xhtml,而不是.html)


免責聲明:
除了已經提到的原因之外,不使用color屬性的另一個原因是它存在兼容性問題。 例如,如果您碰巧同時具有color屬性和css的hr,則結果在瀏覽器之間會有所不同。

 hr {color:blue} 
 <hr color="red"> 

在Firefox中為藍色,在Chrome和IE中為紅色。

hr標簽不支持color屬性,這就是發生錯誤的原因。 嘗試對hr標簽使用border屬性,那么它將起作用。 您必須為此使用css。

 <hr style="border: 1px solid #f00"> 

單獨使用XHTML不能更改<hr>標記的顏色。

盡管有人建議使用style屬性,但是這將是內聯CSS而非純粹的XHTML。

您可以使用樣式屬性更改hr標簽的顏色。

<hr style="border-color: #f00">

我認為它應該可以按照您的要求工作。

hr元素支持CSS background-color屬性 它還支持CSS bordermarginpadding屬性; 盡管我強烈建議您考慮使用該屬性對大多數元素而言90%的時間,但position和相關屬性可能還是合適的。

例:

<hr style="background-color: #f00; height: 4px; width: 90%;" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM