Procent szerokości elementu potomnego w absolutnie pozycjonowanym rodzicu w Internet Explorer 7
Mam absolutnie pozycjonowane div
zawierające kilkoro dzieci, z których jedno jest stosunkowo pozycjonowane div
. Gdy używam szerokości opartej na procentach na dziecku div
, zapada się do szerokości " 0 " w Internet Explorer 7, ale nie w Firefox lub Safari.
Jeśli użyję szerokości piksela , to działa. Jeśli rodzic jest względnie umieszczony, szerokość procentowa na dziecku działa.
- czy coś mi umyka?
- czy jest łatwe fix dla tego oprócz szerokości opartej na pikselach na dziecko?
- Czy istnieje obszar specyfikacji CSS, który to obejmuje?
6 answers
Rodzic div
musi mieć zdefiniowane width
, w pikselach lub w procentach. W przeglądarce Internet Explorer 7 rodzic div
potrzebuje zdefiniowanego width
, aby procent Potomków div
działał poprawnie.
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
2016-03-19 06:10:52
Oto przykładowy kod. Myślę, że tego właśnie szukasz. Poniższe wyświetla dokładnie to samo w Firefoksie 3 (mac) i IE7.
#absdiv {
position: absolute;
left: 100px;
top: 100px;
width: 80%;
height: 60%;
background: #999;
}
#pctchild {
width: 60%;
height: 40%;
background: #CCC;
}
#reldiv {
position: relative;
left: 20px;
top: 20px;
height: 25px;
width: 40%;
background: red;
}
<div id="absdiv">
<div id="reldiv"></div>
<div id="pctchild"></div>
</div>
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
2015-09-22 15:34:49
IE przed 8 ma aspekt czasowy do modelu pudełkowego, który przede wszystkim stwarza problem z szerokościami procentowymi. W Twoim przypadku absolutna pozycja div
domyślnie nie ma szerokości. Jego szerokość zostanie obliczona na podstawie szerokości w pikselach jego zawartości i zostanie obliczona po renderowaniu zawartości. Tak więc w punkcie IE napotka i renderuje Twój relatywnie umieszczony div
jego rodzic ma szerokość 0, dlatego samo się zapada do 0.
Jeśli chciałbyś bardziej dogłębna dyskusja na ten temat wraz z wieloma przykładami roboczymi, zajrzyj 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
2012-10-14 11:56:10
Dlaczego szerokość procentowa dziecka w absolutnie pozycjonowanej pracy rodziców w IE7?
Bo to Internet Exploder
Czy coś mi umyka?
To znaczy, aby podnieść świadomość współpracowników / klientów, że IE jest do bani.
Czy istnieje Łatwa poprawka oprócz szerokości opartej na pikselach na dziecku?
Używaj jednostek em
, ponieważ są one bardziej przydatne podczas tworzenia płynnych układów, ponieważ można ich używać do wypełniania i marginesy oraz rozmiary czcionek. Tak więc biała przestrzeń rośnie i kurczy się proporcjonalnie do tekstu, jeśli jest on zmieniany (co naprawdę jest tym, czego potrzebujesz). Nie wydaje mi się, żeby procenty dawały lepszą kontrolę niż ems; nic nie stoi na przeszkodzie, aby określać w setnych częściach ems (0.01 em) i przeglądarka zinterpretuje to, co uzna za stosowne.
Czy istnieje obszar specyfikacji CSS, który to obejmuje?
Brak, z tego co pamiętam em
'S I %'S były przeznaczone dla rozmiarów czcionek sam w CSS 1.0.
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-10-08 16:07:51
Myślę, że ma to coś wspólnego ze sposobem implementacji właściwości hasLayout
w starszej przeglądarce.
Próbowałeś kodu w IE8, aby sprawdzić, czy tam też działa? IE8 posiada Debugger ( F12) i może również działać w trybie IE7.
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
2015-09-22 15:34:01
Div musi mieć określoną szerokość
<div id="parent" style="width:230px;">
<div id="child1"></div>
<div id="child2"></div>
</div>
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
2018-09-07 14:53:02