2011-06-14 113 views
0

我很新的CSS,但我希望這只是我明顯缺少的東西。 在www.sonogenics.co.uk上,Twitter塊看起來漂浮在右邊或具有40px的左邊距。我已明確設置邊距爲0px並清除浮動等,但沒有效果。從Firefox WebDeveloper插件看,它似乎是.tweet ul的問題,但我似乎無法解決它。有人可以向我解釋發生了什麼事嗎? 乾杯 克里斯CSS塊位置問題

+0

哪些瀏覽器(和版本)您使用​​的? – 2011-06-14 09:56:52

+0

我試過Firefox 3.6,4.0和Chrome 12和iOS Safari – 2011-06-14 09:58:45

回答

2

它實際上有left-padding而不是保證金。這是ul元素的默認樣式。要取消它,您應該在樣式聲明中放入padding:0;

一對夫婦的建議:

  • 使用Firebug的發展,這是遠遠優於WebDeveloper附加。我能夠立即發現使用它的問題
  • 使用CSS重置樣式表,刪除這些默認樣式聲明並在瀏覽器中對其進行規範化(默認值在瀏覽器之間不一致)。最有名的是CSS reset by Eric Meyer,我個人在我開發的每個網站上使用。
+1

默認情況下,大多數情況下,瀏覽器之間的合理一致,但列表是他們沒有的地方之一。 IE使用邊距縮進列表;其他瀏覽器使用填充。 – 2011-06-14 10:01:51

+0

感謝您的輸入,Firebug很棒1 – 2011-06-14 10:16:10

+0

爲什麼downvote ...? – 2011-06-14 10:30:33

2

這應該修復它

#tweets ul { padding: 0px; } 

ul S按默認在大多數瀏覽器(即WebKit的40像素)有一個左填充。

+0

@downvoter:我想知道,爲什麼你低估了。如果我的回答錯誤,我也喜歡學習。 – DanielB 2011-06-14 10:20:49

+0

也許它被拒絕了,因爲tweet是一個id,而不是一個類?如果你解決它,也許它會再次投票? – 2011-06-14 10:26:36

+1

@酷夏威夷thx很多。這可能確實是重點,而倒退是有道理的。這就是爲什麼我讚賞對反對意見的評論。知道故障比想知道更好:-)你幫我解決了問題。 – DanielB 2011-06-14 10:39:40

1

由於您的css選擇器,您的樣式沒有被應用。你的選擇是

.twitter ul, li {} 

,而你的HTML元素是

<div id="tweets"> 
    <ul class="twitter">...</ul> 
</div> 

你的CSS選擇器說「的風格所有UL和李是用‘推特’類中的任何元素的後代」。由於ul不包含在具有「twitter」類的祖先元素中,因此不會使用該規則進行樣式設計。

如果您希望規則實際應用,你可以只使用選擇

.twitter {...} 

,或者你可以重新類「推特」父DIV,

<div id="tweets" class="twitter"> 
    <ul class="twitter">...</ul> 
</div> 

,或者你可以使用此選擇器代替,

#tweets ul, li {...} 

它更接近您的原始選擇器。

2

@chris robinson;我檢查了你的twitter/style.css你的主要問題是你錯誤地聲明瞭CSS,爲什麼這些屬性不起作用。

錯誤的CSS聲明:

.twitter #tweets { 
    background: #111; 
    padding: 0 0px; 
    padding-bottom:20px; 
    text-align:left; 
    -moz-border-radius: 5px; 
    border-radius: 5px; 
    border-color:#AAA; 
    border-style:solid; 
    border-width:2px; 
    margin:0px; 
} 

.twitter ul, li { 
    list-style-type: none; 
    background: #222; 
    -moz-border-radius: 5px; 
    border-radius: 5px; 
    border-color:#AAA; 
    border-style:solid; 
    border-width:1px; 
    padding-left:0px; 
    padding-right:0px; 
    padding-bottom:0px; 
    margin:0px; 
    -webkit-padding-start:10x; 
} 

.twitter #tweets a { 
    color: #AAA; 
    text-decoration:none; 
} 

.twitter #tweets a:hover { 
    color: #AAA; 
} 

,如果你檢查你的HTML你的Twitter類是境內關外#tweets它不是。所以,首先糾正你的CSS。

正確的CSS:

#tweets .twitter { 
     background: #111; 
     padding: 0 0px; 
     padding-bottom:20px; 
     text-align:left; 
     -moz-border-radius: 5px; 
     border-radius: 5px; 
     border-color:#AAA; 
     border-style:solid; 
     border-width:2px; 
     margin:0px; 
    } 

    #tweets ul.twitter li { 
     list-style-type: none; 
     background: #222; 
     -moz-border-radius: 5px; 
     border-radius: 5px; 
     border-color:#AAA; 
     border-style:solid; 
     border-width:1px; 
     padding-left:0px; 
     padding-right:0px; 
     padding-bottom:0px; 
     margin:0px; 
     -webkit-padding-start:10x; 
    } 

    #tweets .twitter a { 
     color: #AAA; 
     text-decoration:none; 
    } 

    #tweets .twitter a:hover { 
     color: #AAA; 
    } 
+0

@Chris我認爲sandeep已經完成了修復選擇器的足夠工作。另一個提示是,雖然不使用以短劃線「 - 」開頭的css規則,但這些規則不是標準規則,可能不會被正式接受到css標準中。 – 2011-06-14 10:31:06

+0

對不起。在他發佈修補程序之前,我跳了一下槍併發布了評論。我只是試驗-webkit填充的東西,但我的印象是,在Firefox中有圓角邊框,你需要'-moz-border-radius'規則? – 2011-06-14 10:53:16

+0

@Chris -moz-border-radius被Firefox 4+中的標準邊界半徑規則替代,請參閱http://developer.mozilla.org/en/css/border-radius。爲什麼你只想爲Firefox開發呢?無論如何,你可以看到一個例子jsfiddle我在h​​ttp://jsfiddle.net/V4YCn/使用border-radius做了。它適用於IE 9,Chrome和Opera。我使用Firefox 5測試版測試了它,它工作正常,我相信它也可以用於Firefox 4。我在Safari上試了一下,並沒有發揮作用,這是令人驚訝的。不過,這是5個瀏覽器中的4個... – 2011-06-15 06:04:07