IE7 i właściwość CSS table-cell
Więc po prostu uwielbiam, gdy moja aplikacja działa świetnie w Firefoksie, ale potem otwieram ją w IE i... Nie, spróbuj jeszcze raz.
Problem polega na tym, że ustawiam właściwość wyświetlania CSS na none
LUB table-cell
za pomocą JavaScript.
Początkowo używałem display: block
, ale Firefox renderował to dziwnie bez właściwości table-cell
.
Chciałbym to zrobić bez dodawania hack w JavaScript do testowania dla IE. Dowolne sugestie?
Dzięki.10 answers
Dobry sposób rozwiązania tego ustawienia wartości {[1] } na ''
:
<script type="text/javascript">
<!--
function toggle( elemntId ) {
if (document.getElementById( elemntId ).style.display != 'none') {
document.getElementById( elemntId ).style.display = 'none';
} else {
document.getElementById( elemntId ).style.display = '';
}
return true;
}
//-->
</script>
Pusta wartość powoduje powrót stylu do domyślnej wartości. To rozwiązanie działa we wszystkich głównych przeglądarkach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-21 09:57:33
Rozwiązałem to używając jQuery:
$(document).ready(function(){
if ($.browser.msie && $.browser.version == 7)
{
$(".tablecell").wrap("<td />");
$(".tablerow").wrap("<tr />");
$(".table").wrapInner("<table />");
}
});
Powyższy skrypt zakłada, że masz divy używając stylu takiego jak:
<style>
.table { display: table; }
.tablerow { display: table-row; }
.tablecell { display: table-cell; }
</style>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-10 22:35:19
Miałem ten sam problem i użyłem
*float: left;
" * " oznacza TYLKO IE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-05 21:26:04
No cóż, IE7 nie ma display: table(-cell/-row)
więc będziesz musiał wymyślić coś innego lub zrobić kierowanie przeglądarki (co zgadzam się, to zły hack). Jako szybką poprawkę (Nie wiem, co próbujesz osiągnąć, wyglądowo) możesz spróbować display: inline-block
i zobaczyć, jak to wygląda.
Może wymyślić sposób, aby zrobić display: block
i rozwiązać problem "Firefox rendering it weird" zamiast tego? Czy możesz dokładnie opisać, co masz na myśli przez dziwne renderowanie?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-30 02:24:21
Nigdy nie potrzebujesz Javascript do testowania dla IE, użyj komentarzy warunkowych .
Możesz spojrzeć na rozwiązanie Ci faceci wymyślili do obsługi wyświetlania tabel w IE.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-30 04:00:28
Używanie inline-block działa dobrze dla tego typu rzeczy. Nie, IE 6 i IE 7 technicznie nie mają display: inline-block, ale można replikować zachowanie za pomocą następujących stylów:
div.show-ib {
display: inline-block;
*zoom: 1;
*display: inline;
}
Kluczem do tego jest 'zoom: 1' włącza właściwość 'hasLayout' na elemencie, która zmienia sposób, w jaki przeglądarka renderuje element poziomu bloku. Jedynym, który ma wbudowany blok jest to, że nie możesz mieć marginesu mniej niż 4px.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-08 21:07:12
Używam CSS od ponad dekady i nigdy nie miałem okazji używać display: table-cell, a jedyne, co kiedykolwiek używam komentarzy warunkowych, to ukrywanie zaawansowanych efektów z IE6.
Podejrzewam, że inne podejście rozwiązałoby twój problem w sposób wewnętrzny między przeglądarkami. Czy możesz otworzyć osobne pytanie, które opisuje efekt, który próbujesz osiągnąć, i opublikować HTML i CSS, który obecnie działa w Firefoksie?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-30 13:49:01
Przykład kodu fot komentarze warunkowe, które użytkownik powiek, uprzejmie napisał
" [if lt IE 8] " działa tylko wtedy, gdy przeglądarka jest IE niższa niż IE8, ponieważ IE8 robi to dobrze. Z komentarzami warunkowymi IE7 ładnie układa divy poziomo... HTML:
<div class="container">
<!--[if lt IE 8 ]><table><tr><![endif]-->
<!--[if lt IE 8 ]><td><![endif]-->
<div class="link"><a href="en.html">English</a></div>
<!--[if lt IE 8 ]></td><![endif]-->
<!--[if lt IE 8 ]><td><![endif]-->
<div tabindex="0" class="thumb"><img src="pictures\pic.jpg" /></div>
<!--[if lt IE 8 ]></td><![endif]-->
<!--[if lt IE 8 ]><td><![endif]-->
<div class="link"><a href="de.html">Deutsch</a></div>
<!--[if lt IE 8 ]></td><![endif]-->
<!--[if lt IE 8 ]></tr></table><![endif]-->
</div>
Mój CSS
.link {
display:table-cell;
vertical-align:middle;
}
div.container {
margin: 0 auto;
display:table;
}
.thumb {
display:table-cell;
float: left;
text-align: center;
}
IE 8 i 9 działają z CSS, podobnie jak FireFox. IE7 wygląda teraz tak samo używając Table i td & tr tagów. Na niektórych stronach IE 8 działało tylko 20% czasu, więc użyłem [if lt IE 9 ]
Pomaga to również wygładzić problemy z wyrównaniem pionowym, z którymi IE7 nie radzi sobie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-07 14:36:36
Próbowałem wszystkiego i jedynym sposobem, w jaki znalazłem to wszystko cross browser było użycie Javascript / Jquery. Jest to czyste rozwiązanie lekkie: Kliknij tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-23 17:29:58
IE7 również nie obsługuje display:inline-block;
. Widoczny hack to zoom: 1; *display: inline;
po css dla display:table-cell;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-19 19:29:59