CSS-fråga|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
CSS-fråga
Avatar
dreamweaver
Kommer du hit ofta?
Medlem
Forum Posts: 1220
Member Since:
May 1, 2005
sp_UserOfflineSmall Offline
1
May 11, 2010 - 7:06 pm
sp_Permalink sp_Print

Hur får jag IE att bortse ifrån vissa attribut som jag har i en CSS?

Exempel:

CSS

.menupopup {
Z-INDEX: 3000;
POSITION: absolute;
DISPLAY: none;

(detta ska inte =<IE7 se)
MARGIN-BOTTOM: 17px
BOTTOM: 0px;
RIGHT: 1px;
(/detta)

(detta ska bara =< IE7 se)
MARGIN-LEFT: 55px;
LEFT: 1px;
TOP: 0px;
(/detta)
}

Jag kan ju givetvis lägga in det som

generic.css
.menupopup {
Z-INDEX: 3000;
POSITION: absolute;
DISPLAY: none;
}
<!--[if !lte IE 7]>
non-ie_crap.css
<![endif]-->
.menupopup { 
MARGIN-BOTTOM: 17px
BOTTOM: 0px;
RIGHT: 1px;
}
<!--[if lte IE 7]>
ie_crap.css
<![endif]-->
.menupopup { 
MARGIN-LEFT: 55px;
LEFT: 1px;
TOP: 0px;
}

Men det blir så klöddigt med tre filer. En huvudfil som det ska vara i moderna webbläsare och sen en anus-fil för IE7 och äldre vore najs. Går det så att säga radera attribut som har laddats in i en tidigare CSS och bortse ifrån dessa, vilket isf skulle göras i ie_crap.css? För det funkar inte att exempelvis sätta "RIGHT: 0px" i efterhand för då existerar attributet och ställer till problem i renderingen.

Några idéer?

Avatar
Snorch
Member
Medlem
Forum Posts: 8881
Member Since:
March 14, 2001
sp_UserOfflineSmall Offline
1249304
May 12, 2010 - 1:32 pm
sp_Permalink sp_Print

Det går ju alltid att lösa det genom att ha två css-filer, en för alla vettiga browser och en annan för IE.
Om jag minns rätt.


<link rel="stylesheet" type="text/css" href="not-ie.css" />



<link rel="stylesheet" type="text/css" href="ie.css" />

Annars ska det inte vara några problem att ha flera css attribut eftersom de skrivs över av nästa, så länge man det specifika för IE sist. Så har jag själv gjort flera gånger.
En annan lösning är att göra tex såhär:

body
{
background: white; /* all browsers */
*background: black; /* black on ie7 only */
_background: blue; /* blue on ie 6 only */
}
Avatar
dreamweaver
Kommer du hit ofta?
Medlem
Forum Posts: 1220
Member Since:
May 1, 2005
sp_UserOfflineSmall Offline
1249339
May 12, 2010 - 7:51 pm
sp_Permalink sp_Print

Snorch wrote: Det går ju alltid att lösa det genom att ha två css-filer, en för alla vettiga browser och en annan för IE.
Om jag minns rätt.


<link rel="stylesheet" type="text/css" href="not-ie.css" />



<link rel="stylesheet" type="text/css" href="ie.css" />

Jo, men då har du en extra CSS för den generiska koden som funkar i båda webbläsarna, därav tre filer totalt. Om man bara har de ovanstående så har man två uppsättningar kod där 99% är identiskt, och det blir extra arbete att underhålla två filer som ska ha samma innehåll.

Snorch wrote: Annars ska det inte vara några problem att ha flera css attribut eftersom de skrivs över av nästa, så länge man det specifika för IE sist. Så har jag själv gjort flera gånger.
En annan lösning är att göra tex såhär:

body
{
background: white; /* all browsers */
*background: black; /* black on ie7 only */
_background: blue; /* blue on ie 6 only */
}

Njae, att skriva över ett attribut är inte samma sak som att bortse ifrån det. Säg att den generiska koden har "BOTTOM: 0px;" för en klass, så kan jag inte få ie att bortse ifrån denna i efterhand. Att sätta "BOTTOM: null;" funkar ju inte. För så fort jag sätter ett värde på ett attribut så sätter det ett constraint, och sen går det bara att ändra värde på det, inte få det att försvinna.

Avatar
Snorch
Member
Medlem
Forum Posts: 8881
Member Since:
March 14, 2001
sp_UserOfflineSmall Offline
1249350
May 12, 2010 - 9:38 pm
sp_Permalink sp_Print

Nej jag tänkte mer att du använder två filer med allt i, mer arbete blir det såklart (om man nu ändrar så mycket när det väl är klart) men man har å andra sidan allt samlat, inga "include"-filer.

Inser att jag inte läste dina exempel ordentligt.
Ska det inte gå att använda [if IE] före själva css-koden, likt det nedan. Har för mig jag sett något sånt exempel tidigare. Prova släng in det på varje rad i första koden du har i först inlägget.


[if ! IE] MARGIN-BOTTOM: 17px
[if lte IE] MARGIN-LEFT: 55px;

osv.

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 694
Currently Online:
Guest(s) 70
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL