2013-04-11 43 views
0

我會直接跳到代碼中以便於解釋。我有一個自動加載,並從另一個HTML文件中像這樣插入一個圖片庫(有字幕文本)一個簡單的摺疊式菜單:使用較小的瀏覽器窗口在某些元素的左右邊緣處優雅地添加填充

<section> 
    <a class="box-link" href="#.html">Link 1</a> 
     <div class="image-gallery"> 
      <img src="1.jpg"> [...] 
      <p>Example loaded paragraph of text</p> 
     </div> 
    <a class="box-link" href="#.html">Link 2</a> 
    <a class="box-link" href="#.html">Link 3</a> 
    <a class="box-link" href="#.html">Link 4</a> 
</section> 

而這種相關CSS:

section { 
    width: 100%; 
    max-width: 60em; 
    margin: 0 auto; 
} 

.box-link { 
    display: block; 
    box-sizing: border-box; 
    padding: 1em; 
    width: 100%; 
} 

在一個大的瀏覽器窗口部分寬度最大值爲60em,並居中顯示在屏幕上。每一部分內容都被刷新到列的邊緣,排列得很好。

當瀏覽器窗口小於60em時,所有內容都變爲100%寬度,而且正是我想要的 - 除了標籤以外。在此狀態下,我希望p標記在左側和右側具有額外的1em邊距或填充以防止與頁面邊緣碰撞。

添加padding: 0 1em;的部分標籤實現正是我想要的p標籤,但一切變得填充爲好,這是我不希望 - 在一個大的瀏覽器窗口,寬度仍處於60em上限。一旦窗口大小減小到60em以下,填充是可見的。

所以,問題是:是有只有p在這個「自動」時尚標籤一個客場實現微胖/保證金,否則我將不得不訴諸使用媒體查詢申請像p { padding: 0 1em; }小屏幕?

謝謝。

+0

的'p'標籤是你的'section'類中是否正確?你應該可以創建一個樣式'section> p {padding:0 1em;}'(因爲你說完成了你想要的內容,但是影響了所有元素,這隻會在你的'section'類中設置段落標記的樣式。 – DigTheDoug 2013-04-11 21:09:20

+0

這是真的,但我不希望在更大的瀏覽器屏幕上額外填充。謝謝你。 – charlestheoaf 2013-04-11 21:11:06

+0

你是否嘗試修改段落和/或'.image-gallery'元素的框大小?(順便說一句,我們喜歡如果你需要圖片,請訪問http://placehold.it/或http://placekitten.com/) – cimmanon 2013-04-11 21:18:01

回答

0

我覺得媒體查詢是唯一的,最好的選項 -

@media screen and (max-width:480px) { 
    p { padding: 0 1em; } 
} 
+0

是的,我很害怕這個。幾乎所有網站的其他部分功能完美無需媒體查詢,所以我希望在這裏找到另一個聰明的解決方案。 – charlestheoaf 2013-04-11 21:12:27

+0

謝謝!我沒有意識到「回車」鍵會在我最後的評論中自動提交我的回覆。 – charlestheoaf 2013-04-11 21:13:01