2012-11-20 261 views
26

當瀏覽器的寬度小於或等於1026px時,我想要隱藏div元素。這是可能的與CSS:@media only screen and (min-width: 1140px) {}如果這是不可能與CSS,有沒有其他的選擇?當屏幕尺寸小於特定尺寸時隱藏div元素

額外信息: 當div元素被隱藏時,我不想要一個空白的白色空白。我想讓頁面流動,就像我從代碼中完全刪除div元素一樣。

我隱藏的div是<div id="fadeshow1"></div>

HTML5文檔類型。

我用javascript將一個畫廊放入該div。


我希望它看起來像這樣當它大於1026px寬度:http://i.stack.imgur.com/REBPi.png


我希望它看起來像這樣,當它小於1026px寬度: http://i.stack.imgur.com/XdiL4.png

+0

是這個問題仍然有效? –

+0

@VitorinoFernandes:我仍然得到我的答案的投票,所以,是的。 – Cerbrus

回答

72

你可以用CSS做到這一點:

@media only screen and (max-width: 1026px) { 
    #fadeshow1 { 
     display: none; 
    } 
} 

我們使用max-width,因爲我們要破例默認CSS,當一個屏幕是比0126px更小min-width會使1026px寬度和更大的所有屏幕的CSS規則計數。

需要注意的是@media查詢不支持IE8及更低版本。

+2

ahhhhhhh,完美的作品!謝謝Andy和Cerbrus。 :) –

13
@media only screen and (max-width: 1026px) { 
    #fadeshow1 { 
    display: none; 
    } 
} 

任何時候屏幕小於1026像素s的範圍內,{ }內的任何內容都將適用。

Some browsers don't support media queries.你可以避開這個使用JavaScript庫,例如Respond.JS

+0

ahhhhhhh,完美的作品!謝謝Andy和Cerbrus。 :) –

0

@media只有屏幕和(最小寬度:1140px)應該做他的工作, 向我們展示你的CSS文件

0

這應有助於:

if(screen.width<1026){//get the screen width 
    //get element form document 
    elem.style.display == 'none'//toggle visibility 
} 

768像素應該足夠,以及

+1

'能見度:hidden'使得DIV可見,但不擺脫在頁面上拿起面積,所以OP會在他的網站中間的大塊空白塊。 'Display:none'好一些 – Andy

+0

thnx更正 – vaibhav

3

我不知道CSS,但這段JavaScript代碼應工作:

function getBrowserSize(){ 
     var w, h; 

     if(typeof window.innerWidth != 'undefined') 
     { 
      w = window.innerWidth; //other browsers 
      h = window.innerHeight; 
     } 
     else if(typeof document.documentElement != 'undefined' && typeof  document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) 
     { 
      w = document.documentElement.clientWidth; //IE 
      h = document.documentElement.clientHeight; 
     } 
     else{ 
      w = document.body.clientWidth; //IE 
      h = document.body.clientHeight; 
     } 
     return {'width':w, 'height': h}; 
} 

if(parseInt(getBrowserSize().width) < 1026){ 
document.getElementById("fadeshow1").style.display = "none"; 
} 
+0

在css中使用@media更容易。 Javascript使這個任務變得更加複雜。 – 2014-12-15 15:24:41

+0

我是新來的web應用程序,所以糾正我,如果我錯了,但不是更好的使用'==!'而不是'=!'? – Touk

0

你必須使用最大寬度,而不是最小寬度。

<style> 
    @media (max-width: 1026px) { 
     #test { 
      display: none; 
     } 
    } 
</style> 
<div id="test"> 
    <h1>Test</h1> 
</div> 
1

你只需要在CSS中使用媒體查詢來實現這一點。

@media (max-width: 1026px) { 
    #fadeshow1 { display: none; } 
} 

不幸的是有些瀏覽器不支持@media(IE8看你和下面)。在這些情況下,您有幾個選項,但最常見的是Respond.js,它是用於最小/最大寬度CSS3 Media Queries的輕量級聚合填充。

<!--[if lt IE 9]> 
    <script src="respond.min.js"></script> 
<![endif]--> 

這將允許您的響應式設計在IE的這些舊版本中起作用。
*reference

1

如果你正在使用bootstrap你可以使用隱藏sm(lg或md或xs),這取決於你想要什麼。然後你可以進入css文件並指定你希望顯示的百分比。在下面的示例中,它將隱藏在大屏幕上,中型和特大型屏幕上,但通過放置屏幕的一半顯示在小屏幕上。

<div class="col-sm-12 hidden-lg hidden-md hidden-xs">what ever you want</div> 
+0

引導由defualt有這個CSS文件與所有@media屏幕尺寸的額外的小,中,小集所有你需要做的是調整他們的需要。即使你沒有使用bootstrap你可以複製和粘貼你的css文件。 *鏈接到文件 - > * [鏈接](https://drive.google.com/file/d/0B5X-yh_L2HHNZ2gyejdXTWRCc28/view?usp=sharing) –