2014-03-01 223 views
0

我使用IE(Internet Explorer)條件註釋來修復IE上的保證金問題,但由於某種原因,它不工作,我無法修復它。IE條件註釋不起作用

CSS代碼(嵌入在條件註釋):對於所有其他瀏覽器

<!--[if IE]> 
    <style> 
.right_header_form{ 
    float: right; 
    margin: -360px 50px 0; 
    width: 240px; 
    height: auto; 
    color: #FFF; 
    font-size: 14px; 
    font-weight: bold; 
    line-height: 21px; 
    padding: 0px; 
    background-color: #444; 
    color: #FFF; 
    border-top-left-radius: 4px; 
    border-top-right-radius: 4px; 
    padding: 10px 15px; 
} 
.right_form { 
    float: right; 
    margin: -320px 50px 0; 
    width: 240px; 
    height: auto; 
    background-color: #F5F5F5; 
    color: #666; 
    margin-bottom: 20px; 
    padding: 15px; 
    border-bottom-left-radius: 4px; 
    border-bottom-right-radius: 4px; 
} 
    </style> 
<![endif]--> 

我原來的CSS代碼:

.right_header_form{ 
    float: right; 
    margin: -390px 50px 0; 
    width: 240px; 
    height: auto; 
    color: #FFF; 
    font-size: 14px; 
    font-weight: bold; 
    line-height: 21px; 
    padding: 0px; 
    background-color: #444; 
    color: #FFF; 
    border-top-left-radius: 4px; 
    border-top-right-radius: 4px; 
    padding: 10px 15px; 
} 
.right_form { 
    float: right; 
    margin: -350px 50px 0; 
    width: 240px; 
    height: auto; 
    background-color: #F5F5F5; 
    color: #666; 
    margin-bottom: 20px; 
    padding: 15px; 
    border-bottom-left-radius: 4px; 
    border-bottom-right-radius: 4px; 
} 

正如你所看到的,保證金是每個代碼之間的不同其他。正如我所說,它不起作用,但似乎代碼是有效的。

問:如何僅使用條件註釋更改IE的CSS代碼?

+0

@NiettheDarkAbsol嗯,我用了保證金,所以這是IE瀏覽器有點問題。 – Yotam

+2

IE的哪個版本。 IE11無法識別條件註釋。 –

+2

我想這可能是因爲添加填充和寬度到同一個容器。 IE使用不同的框模型:http://www.456bereastreet.com/archive/200612/internet_explorer_and_the_css_box_model/ – JohanVdR

回答

0
<!--[if IE]> 
     <style> 
      .right_header_form{ 
       margin: 20px 0 0; 
      } 
      .right_form { 
       margin: 20px 0 0; 
      } 
     </style> 
    <![endif]--> 
    <link rel="stylesheet" href="css/style.css" type="text/css" /> 

檢查您的來自mediafire的PHP代碼。
您的IE瀏覽器樣式將被覆蓋,因爲IE條件代碼中的第一個。應該是第一個style.css。 CSS優先。

應該是:

<link rel="stylesheet" href="css/style.css" type="text/css" /> 
    <!--[if IE]> 
     <style> 
      .right_header_form{ 
       margin: 20px 0 0; 
      } 
      .right_form { 
       margin: 20px 0 0; 
      } 
     </style> 
    <![endif]--> 
+0

它沒有改變一件事,在Firefox的工作,但IE沒有。 – Yotam

+0

你的html也有一個錯誤。 alt屬性是圖像所必需的。 – JohanVdR

+0

@Sigma:這不是一個「錯誤」,因爲HTML沒有真正的錯誤;它不應該影響這個問題。但是,當然省略'alt'是非標準的。 – rvighne

0

問題是

margin: -390px 50px 0; 

基本上,你猜的.main_form高度390px,所以你讓.right_header_form390px向上。

這很糟糕。

編碼頁面之前,你必須考慮一個好的設計。

在這種情況下,製作兩列並將它們放置在其他旁邊,將第一個(和第二個可選)浮動。並將標題放在每列中。

0

請注意,條件註釋僅適用於INTERNET EXPLORER 9和LOWER,從IE10開始並且它已被禁用。

我的建議是,你把你的IE瀏覽器CSS在另一個叫iestyle.css CSS文件,並調用它像這樣:

<!--[if IE]> 
    <link rel=」stylesheet」 type=」text/css」 href=」iestyle.css」/> 
<![endif]--> 

這有工作,

好運。

PS:也

可以使用條件註釋在HTML不同的CSS類或ID適用於元素,你可以接着用CSS目標。

作品是這樣的:

<!--[if IE]> 
    <div id="content" class="ie"> 
<![endif]--> 
<!--[if !IE]> 
    <div id="content"> 
<![endif]--> 

這樣做是爲IE它增加了您在CSS中指定,當它是不是IE !IE它不添加類的類「即」。