2012-09-05 19 views
9

Mam niektóre HTML i CSS, który wygląda tak:jquery pokaż/ukryj przy użyciu inline-block

<div id="TheContainer"> 
<div class="MyDivs"></div> 
<div class="MyDivs" id="ThisDiv"></div> 
</div> 

#TheContainer{text-align:center;} 
.MyDivs{margin:0px auto;display:inline-block;} 
#ThisDiv{display:none;} 

Używam inline-block i margin: 0px auto tak, że MyDivs są skupione w obrębie TheContainer. Problem polega na tym, że kiedy to zrobić:

$('#TheContainer').children().hide(); 
$('#ThisDiv').show(); 

następnie ThisDiv nie skupia się już ponieważ wyświetlacz zmieniło od zera do blokowania zamiast inline-block jak mam go w definicji CSS.

wiem Mógłbym napisać .css('display','none') i .css('display','inline-block') ale zastanawiałem się, czy istnieje sposób, aby to robić poprzez utrzymywanie .show()

Dzięki za sugestie.

Odpowiedz

6

Można zrobić rozszerzenie do jQuery ...

$.fn.showInlineBlock = function() { 
    return this.css('display', 'inline-block'); 
}; 

useage byłoby:

$('#whatever').showInlineBlock(); 

jsFiddle Demo

+0

ok, to wraca do tego, co myślał. Dzięki. – frenchie

+0

Sądzę, że mógłbyś zrobić to samo, po prostu '$ .fn.show', aby zastąpić domyślną wersję jQuery, ale to może być niebezpieczne w pewnych zmianach do wbudowanego bloku, który nie powinien być! –

+0

Zobacz także http://stackoverflow.com/questions/9260009/jquery-show-function-display-inline-block-how –

Powiązane problemy