Procent szerokość elementu pozycjonowanego bezwzględnie dziecko rodzica na Internet Explorer 7

głosy
249

Mam pozycjonowany bezwzględnie divzawierające kilka dzieci, z których jedna jest względnie umieszczony div. Kiedy używam szerokość procentowej opartej na dziecko div, to zapada się „0” width na Internet Explorer 7 , ale nie na Firefox lub Safari.

Jeśli używam szerokości piksela , to działa. Jeśli rodzic jest stosunkowo umieszczony szerokość procent na dziecko działa.

  1. Czy jest coś jestem brakujące tutaj?
  2. Czy istnieje prosty fix do tego oprócz szerokości piksela opartej na dziecko?
  3. Czy istnieje obszar specyfikacji CSS, który obejmuje to?
Utwórz 31/07/2008 o 23:08
źródło użytkownik
W innych językach...                            


6 odpowiedzi

głosy
129

Rodzic divmusi być określona width, albo w pikselach lub w procentach. W programie Internet Explorer 7, rodzic divpotrzebuje zdefiniowane widthdla procentowego dziecko divs działać poprawnie.

Odpowiedział 01/08/2008 o 13:22
źródło użytkownik

głosy
53

Oto przykładowy kod. Myślę, że to jest to, czego szukasz. Poniższe komunikaty dokładnie takie same 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>

Odpowiedział 05/08/2008 o 06:54
źródło użytkownik

głosy
34

IE przed 8 ma czasowy aspekt swojego modelu pudełkowego, że przede wszystkim stwarza problem z szerokościach podstawie procentowego. W twoim przypadku tutaj absolutnie ustawione divdomyślnie ma szerokość. Jej szerokość będzie pracował w oparciu o szerokości piksela jego treścią i zostanie obliczona po treści są renderowane. Więc w punkcie IE napotka i renderuje stosunkowo umieszczony divjego rodzic ma szerokość 0 stąd dlaczego sama załamuje się 0.

Jeśli chcieliby Państwo otrzymać bardziej szczegółowe omówienie w tym wraz z dużą ilością przykładów roboczych, mają gąsior tutaj .

Odpowiedział 04/09/2008 o 10:02
źródło użytkownik

głosy
30

Dlaczego nie odsetek szerokość dziecko w absolutnie umieszczonym pracy dominującej w IE7?

Bo to jest Internet Exploder

Czy jest coś jestem brakujące tutaj?

Oznacza to, że w celu podniesienia świadomości klientów / współpracownik, że IE bani.

Czy istnieje prosty fix oprócz szerokości piksela opartej na dziecko?

Użyj emjednostek, ponieważ są one bardziej użyteczne podczas tworzenia płynnych układów, jak można wykorzystać je do dopełnienia i marginesów oraz rozmiarów czcionek. Więc biała przestrzeń rośnie i maleje proporcjonalnie do tekstu, jeśli jest zmieniany (co jest naprawdę, co trzeba). Nie sądzę procenty dają precyzyjną kontrolę niż EMS; nie ma nic, aby zatrzymać cię określając w setnych EMS (0,01 EM) i przeglądarka będzie interpretować według własnego uznania.

Czy istnieje obszar specyfikacji CSS, który obejmuje to?

Nikt, o ile dobrze pamiętam em„si%” s były przeznaczone dla rozmiarów czcionek sam z powrotem w CSS 1.0.

Odpowiedział 13/05/2009 o 08:47
źródło użytkownik

głosy
28

Myślę, że ma to coś wspólnego ze sposobem, w jaki hasLayoutnieruchomość jest realizowany w starszej przeglądarce.

Czy próbowałeś swój kod w IE8 aby sprawdzić, czy prace tam też? IE8 ma Debugger ( F12) i może również pracować w trybie IE7.

Odpowiedział 22/10/2010 o 17:21
źródło użytkownik

głosy
1

Że divmusi mieć określoną szerokość:

<div id="parent" style="width:230px;">
    <div id="child1"></div>
    <div id="child2"></div>
</div>
Odpowiedział 07/09/2018 o 14:53
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more