Zobacz pełną wersję : Jak wyłączyć tryb quirks?
jahoozKA
13-01-2010, 15:25
Niestety IE<8 nie mają opcji wyłączania trybu dziwności a on psuje mi wygląd strony link (http://www.urzad.przywidz.pl/). Wszystko wskazuje na to, że chodzi o ten tryb, który zostawia pusty blok obok menu (komponent swmenufree). Strona w FF i przy wyłączonym widoku zgodności w IE8 wyświetlana jest prawidłowo. Gdy włączę widok zgodności w IE8 - pusty blok ! Tak samo strona wyświetla się w IE<8. Proszę o radę kogoś kto wie jak temu zaradzić czyli sprawić aby przeglądarki IE<8 nie wchodziły w ten tryb i prawidłowo wyświetlały.
Poczytałem forum i znalazłem (http://wiki.joomla.pl/Tryb_dziwno%C5%9Bci_i_jak_go_unika%C4%87)możliwe rozwiązania lecz to nie pomaga a mianowicie usunąłem część wpisu w pliku index.php w templacie której używam:
chodzi o blok deklaracji DOCTYPE
<?php
/**
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" > - usunąłem
<head>
...
Czy ktoś spotkał się z podobnym problemem ? Proszę o pomoc
Witam,
kod , który zacytowałeś nie wygląda mi na kod pliku index.php Twojego szablonu, chociaż mogę się mylić.
A powodem przechodzenia przeglądarki w "kłopotliwy" tryb jest ta oto niedokończona deklaracja:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
Brak zamknięcia znacznika.
Usunąłeś linijkę, która nie ma nic wspólnego z trybem dziwności, a odpowiada za wyświetlanie strony oraz informacji o wersji językowej zawartości (czyli o tym, że tekst na stronie jest w języku polskim).
Poczytaj o DOCTYPE (na dole strony) http://kurs.browsehappy.pl/Definicja/QuirksMode.
Polecam tez poczytać : http://code.google.com/p/ie7-js/.
jahoozKA
13-01-2010, 16:13
Dziękuje Ci za szybką podpowiedź. :)
Dopisałem brakujący znacznik ale wciąż IE7 wyświetla pusty blok obok menu. Kod, który podałem jest to wycinek pliku index.php dlatego mogło Ciebie zmylić. Wyrzuciłem jeszcze fragment z adresem.
początek kodu:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<head>
...czyli mam deklarację XHTML 1.0 Transitional — brak Prologu XML i adresu URL - powinno wyświetlać w standardzie we wszystkich przeglądarkach
Czy masz inne pomysły? Są jeszcze fragmenty kodu, które można dodać do DOCTYPE jak np.:
To prevent IE from entering Quirks Mode, replace the and statements at the top of the template's index file with:
$iso = split( '=', _ISO );
$Browser_Type = strtok($HTTP_USER_AGENT, "/");
$doc_type = "";
if (ereg( "MSIE", $HTTP_USER_AGENT))
{
echo $doc_type;
echo '';
$browtype = "You are using IE";
}
else
{
echo '';
echo $doc_type;
$browtype = "You are not using IE";
}
?>ze strony link (http://forum.joomla.org/viewtopic.php?t=7537) - też próbowałem i :(
zwiastun
13-01-2010, 16:19
@moje podał Ci adres do kursu. Na www.pomoc.joomla.pl te kwestie również są omówione. DTD w Twoim dokumencie nie posiada części adresowej. Nie umieściłeś również niepotrzebnie usuniętego znacznika głównej części dokumentu (html)!
jahoozKA
13-01-2010, 17:10
Część adresowa z DTD została usunięta celowo zgodnie z zaleceniami z kursu , który znalazłem wcześniej http://kurs.browsehappy.pl/Definicja/QuirksMode (potem link przytoczył @moje). Jeśli dobrze zrozumiałem z kursu:
XHTML 1.0 Transitional — brak Prologu XML i adresu URL wprowadza przeglądarki w tryb -standard-, dlatego usunąłem części adresowe i prolog. Jest jeszcze jedna wyraźniejsza tabela na tej samej stronie, która podpowiada, że
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (http://hsivonen.iki.fi/doctype/test-quirks.php?doctype=%3C%21DOCTYPE+html+PUBLIC+%22-%2F%2FW3C%2F%2FDTD+XHTML+1.0+Transitional%2F%2FEN% 22+%22http%3A%2F%2Fwww.w3.org%2FTR%2Fxhtml1%2FDTD% 2Fxhtml1-transitional.dtd%22%3E)czyli deklaracja z adresem wprowadza prawie wszystkie (popularne) przeglądarki w tryb standardowy - na tym mi zależy i tak też mam zadeklarowane w pliku index.php templaty rhuk_milkyway:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >Lecz wciąż IE7 nie pokazuje strony prawidłowo.
Nie umieściłeś również niepotrzebnie usuniętego znacznika głównej części dokumentu (html)!Nie usuwałem znaczników głównej części dokumentu. Kod, który podałem jest wycinkiem, w którym jest problematyczny fragment kodu.
zwiastun
13-01-2010, 17:21
Sama deklaracja nie wprowadza w tryb standardowy. Są również inne powody przejścia w tryb dziwactw. Zostało to opisane, ale czytaj uważnie, bo to - jak z adresem. Możliwe, iż gdzieś doczytałeś, że adres nie jest konieczny, ale w znanych mi przykładach i opisach taka uwaga to raczej wyjątek.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!