2012-11-20 19 views
26

Ho un elemento div che voglio nascondere quando la larghezza del browser è inferiore o uguale a 1026px. E 'possibile farlo con il css: @media only screen and (min-width: 1140px) {} Se non è possibile con css, c'è qualche alternativa?Nascondi elemento div quando la dimensione dello schermo è inferiore a una dimensione specifica

Ulteriori informazioni: Quando l'elemento div è nascosto, non voglio uno spazio vuoto bianco. Mi piacerebbe che la pagina scorresse come se eliminassi completamente l'elemento div dal codice.

Il div che mi nascondo è <div id="fadeshow1"></div>.

HTML5 Doctype.

Ho usato javascript per posizionare una galleria in quel div.


voglio farlo sembrare come questo, quando è più grande di 1026px Larghezza:http://i.stack.imgur.com/REBPi.png


voglio farlo sembrare come questo, quando è inferiore a 1026px Larghezza: http://i.stack.imgur.com/XdiL4.png

+0

questa domanda è ancora attiva? –

+0

@VitorinoFernandes: sto ancora ottenendo voti sulla mia risposta, quindi, sì, lo è. – Cerbrus

risposta

72

Si può fare questo con i CSS:

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

Stiamo usando max-width, perché vogliamo fare un'eccezione al default CSS, quando uno schermo è più piccolo rispetto al 1026px. min-width renderebbe il conteggio delle regole CSS per tutte le schermate di larghezza pari o superiore a 1026 px.

Qualcosa da tenere a mente è che le query @media non sono supportate su IE8 e inferiori.

+2

ahhhhhhh, funziona perfettamente! Grazie Andy e Cerbrus. :) –

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

Ogni volta che lo schermo è inferiore a 1026 pixel s largo, si applica qualsiasi cosa all'interno di { }.

Some browsers don't support media queries. È possibile aggirare questo utilizzando una libreria javascript come Respond.JS

+0

ahhhhhhh, funziona perfettamente! Grazie Andy e Cerbrus. :) –

0

@ media solo dello schermo e (min-width: 1140px) dovrebbe fare il suo lavoro, ci mostrano il file css

0

Questo dovrebbe aiutare:

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

768 px dovrebbe essere sufficiente come pure

+1

'Visibility: hidden' rende invisibile il div ma non elimina l'area occupata nella pagina, quindi OP avrebbe un grande blocco vuoto nel mezzo del suo sito. 'Display: none' è meglio – Andy

+0

thnx per la correzione – vaibhav

3

Non so su CSS, ma questo codice Javascript dovrebbe funzionare:

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

L'uso di @media in css è più facile. Javascript rende questa attività più complicata. –

+0

Sono nuovo alle applicazioni web quindi correggimi se sbaglio, ma non è meglio usare '==!' Invece di '=!'? – Touk

0

Devi usare max-width, invece di min-width.

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

È sufficiente utilizzare una query multimediale in CSS per ottenere ciò.

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

Purtroppo alcuni browser non supportano @media (guardando a voi IE8 e sotto). In questi casi, hai alcune opzioni, ma il più comune è Respond.js che è un polyfill leggero per le query media CSS3 min/max.

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

Ciò consentirà al vostro design reattivo di funzionare in quelle vecchie versioni di IE.
*reference

1

se si utilizza il bootstrap si può semplicemente utilizzare il hidden-sm (lg o md o xs) a seconda di ciò che si desidera. Puoi quindi andare nel file css e specificare le percentuali che vuoi mostrare. nell'esempio qui sotto si nasconderà su schermi di grandi dimensioni, quelli medi e quelli più piccoli ma mostrerà su schermi piccoli prendendo la metà dello schermo.

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

Bootstrap di defualt ha questo file css con tutte le dimensioni dello schermo @media per piccoli extra, piccoli, medi e grandi set tutto quello che devi fare è regolarli secondo le tue necessità. anche se non stai usando bootstrap puoi copiare e incollare nel tuo file css. * link al file -> * [link] (https://drive.google.com/file/d/0B5X-yh_L2HHNZ2gyejdXTWRCc28/view?usp=sharing) –

Problemi correlati