Elementet er gjennomsiktig. CSS-opasitetsegenskap: kontrollerer gjennomsiktighet. Hvordan gjøre et element gjennomsiktig og fjerne gjennomsiktighet i CSS

orem Ipsum er rett og slett dummy tekst fra trykkeri- og setteindustrien. Lorem Ipsum har vært bransjens standard dummy-tekst helt siden 1500-tallet, da en ukjent skriver tok en bysse av typer og forvrengte den for å lage en type prøvebok. Den har overlevd ikke bare fem århundrer, men også spranget inn i elektronisk setting Det ble popularisert på 1960-tallet med utgivelsen av Letraset-ark som inneholder Lorem Ipsum-passasjer, og mer nylig med desktop publishing-programvare som Aldus PageMaker inkludert versjoner av Lorem Ipsum.
Det er et lenge etablert faktum at en leser vil bli distrahert av det lesbare innholdet på en side når han ser på layouten. Poenget med å bruke Lorem Ipsum er at det har en mer eller mindre normal fordeling av bokstaver, i motsetning til å bruke "Innhold her, innhold her", slik at det ser ut som lesbart engelsk. Mange desktop publishing-pakker og nettsideredigerere bruker nå Lorem Ipsum som standard modelltekst, og et søk etter "lorem ipsum" vil avdekke mange nettsteder som fortsatt er i barndommen. Ulike versjoner har utviklet seg gjennom årene, noen ganger ved et uhell, noen ganger med vilje (injisert humor og lignende).

Så i dag skal vi snakke om åpenhet i html sider. Du har sannsynligvis kommet over gjennomsiktige popup-blokker, enten det er et bildegalleri eller påloggingsskjemaer på et populært nettsted. Det er mange bruksområder for åpenhet i HTML. Så hvordan er det laget og hvor kan det brukes?

Vel, først av alt, la oss forstå at dokumentet vårt ikke bare har ett monitorplan - det er generelt 3-dimensjonalt, jeg nevnte dette i artikkelen "Z-indeks". Følgelig ville selv et helt gjennomsiktig lag, hvis det var på toppen av skjermstabelen, blokkert tilgang til andre elementer. Dette er en av hovedbrukene til gjennomsiktige blokker. Selv om det vanligvis brukes en skyggeeffekt, vil et helt gjennomsiktig lag fungere akkurat det samme. Så, for eksempel, fungerer mange populære fotogallerier; et skyggelagt lag er organisert der bilder og kontroller for dem vises. Resten av siden er "dekket" med et (semi) gjennomsiktig lag, som blokkerer tilgangen til alle andre elementer på siden. De. Du vil ikke kunne forlate siden ved å klikke på en lenke på den - all teksten er dekket med en bakgrunn. For å gå tilbake til hoveddelen av nettstedet gir de vanligvis kontroller for å lukke galleriet, påloggingsskjemaet osv. Kontroller visning/skjuling av gjennomsiktige blokker ved hjelp av javascript. Dessverre er det ikke noe alternativ til det. Uten å bruke det, vil brukeren enten ikke se det i det hele tatt gjennomsiktig blokk, eller vil ikke kunne lukke den uten å forlate gjeldende side. Jeg legger merke til at synlighet eller visningsegenskaper brukes til dette.

Så hvordan er åpenhet egentlig organisert i html? Innstillingselementtransparens er vanligvis ikke inkludert i CSS-spesifikasjonen, så du må bruke flere instruksjoner samtidig for å lage den. Noen nettlesere (dvs.) vil fungere med ett alternativ, andre med et annet. Dvs bruker den innebygde filterfunksjonaliteten, andre nettlesere bruker egenskapen "opacity", som er satt i området fra 0 (helt gjennomsiktig objekt) til 1 (helt ugjennomsiktig). For eksempel, i tilfelle av 30 % åpenhet, bør du skrive " opasitet:0,30; filter:alfa(opasitet=30);". Egenskapene, som man kan se fra eksempelet, er like - bare i det første tilfellet brukes et tall fra 0 til 1, i det andre brukes en prosentnotasjon. Et eksempel på en slik blokk:

<div stil = "posisjon:absolutt; topp: 0; venstre: 0; bakgrunnsfarge:rgb(18, 114, 214); bredde:100%; id = "VideoFrame" >

Eksemplet bruker en videovisningsblokk, som aktiveres når du klikker på videominiatyrbildet. Høyden på blokken er ikke spesifisert, siden den kan variere avhengig av skjermstørrelse og sideinnhold. Derfor beregnes den dynamisk når du åpner en video. Et eksempel på bruk av denne teknikken kan sees på hovedsiden til nettstedet ruscircus.ru, som jeg jobbet med på en gang.

Det er faktisk hele hemmeligheten bak åpenhet i html. Vi bruker z-indeks og opasitet for å oppnå en transparent effekt. Og du kan finne mange applikasjoner for dette - alt her er bare begrenset av fantasien din.

08.02.2013 Jeg vil svare på spørsmålene som stilles i kommentarene, nemlig om hvordan du lager en ugjennomsiktig en på en gjennomsiktig blokk. Alt er enkelt her, det er ikke for ingenting at jeg indikerte i materialet en lenke til materiale om z-indeks, du må lage en annen blokk, med en høyere z-indeks enn den gjennomsiktige. Nå, på noen få minutter, skisserte jeg et eksempel. Blokker:

<div stil = "posisjon:absolutt; topp: 0; venstre: 0; bakgrunnsfarge:rgb(18, 114, 214); bredde:100%; høyde:100%; opasitet:0,30; filter:alfa(opasitet=30); synlighet:skjult; z-indeks:1;" id = "VideoFrame" > <div id = "VideoFrame2" stil = "posisjon:absolutt; topp: 25%; venstre: 25%; bakgrunnsfarge: hvit; bredde:50%; høyde:50%; opasitet:0,99; filter:alpha(opasitet=99); synlighet:skjult; z-indeks:2;" onclick = "javascript:SkjulForm();" > Her skriver vi teksten</div>

Og javascript-funksjoner

< script type= "text/javascript" >funksjon ShowForm() ( document.getElementById ("VideoFrame") .style .visibility = "visible" ; document.getElementById ("VideoFrame2") .style .visibility = "visible" ; ) funksjon HideForm() ( document.getElementById (" VideoFrame") .style .visibility = "skjult" ; document.getElementById ("VideoFrame2") .style .visibility = "skjult" ; )

Den første funksjonen viser en gjennomsiktig blokk (sammen med en ugjennomsiktig tekstblokk) - den kan bindes til en knapp. lenke osv.. Den andre funksjonen jeg har er knyttet til et museklikk på en blokk med tekst - den skjuler den gjennomsiktige blokken.

Jeg håper jeg har gitt litt klarhet i hvordan dette fungerer. Vel, hvis ikke, still spørsmål.

CSS-egenskap 3 opasitet lar deg gjøre et eller annet element på nettstedet gjennomsiktig.

Graden av gjennomsiktighet for et element bestemmes av verdien fra 0 før 1 Hvor 0 – helt gjennomsiktig 1 – ugjennomsiktig i det hele tatt.. Så for eksempel meningen 0.5 egenskaper opasitet brukt på et bilde vil bety at dette bildet skal være gjennomskinnelig.





Åpenhet










Åpenhet i IE

Internet Explorer støtter ikke egenskaper opasitet opp til den niende versjonen har den imidlertid sitt eget filter som du kan stille inn graden av gjennomsiktighet med:

filter: alpha(opasitet=50)

Betydning opasitet for Internet Explorer-nettleserfilteret kan variere fra 0 - helt gjennomsiktig 100 - ugjennomsiktig





Åpenhet i IE



Blokkene i denne menyen vil også være gjennomsiktige ved sveving i IE!!


hjem
Site Map
Kjøp en elefant
Selg en elefant
Lei en elefant

Prefikser.

I prinsippet kan dette være slutten på kapittelet om åpenhet, men jeg vil også fortelle om den s.k. leverandørprefikser.. disse kameratene har ingen spesiell relasjon til dette kapittelet, men etter hvert som du går videre med å lære CSS3, vil de dukke opp oftere og oftere, og du må snakke om dem et sted - så jeg skal fortelle deg det her.

Så leverandørprefikser er spesielle CSS-egenskapsprefikser som brukes av nettlesere for eksperimentelle egenskaper som ikke er offisielt inkludert i CSS-spesifikasjonen.

Vi husker at CSS 3-spesifikasjonen fortsatt er under utvikling og formelt sett eksisterer ikke egenskapene beskrevet i denne opplæringen i naturen, men nettlesere bruker dem allerede aktivt på egen risiko og risiko.

Hvorfor på egen risiko? Ja, fordi det er en mulighet for at når CSS 3-spesifikasjonen er offisielt godkjent, vil egenskapene beskrevet i den avvike fra egenskaper med samme navn som allerede brukes av nettlesere. Vel, la oss bli gale og la utviklerne av CSS 3-spesifikasjonen utpeke eiendommen opasitet ikke som graden av gjennomsiktighet av blokken, men for eksempel som skyggelegging eller flimring (selvfølgelig skriver jeg tull), som da vil vises av millioner av allerede installerte nettlesere som opasitet Er dette åpenhet?

Eller la oss si at nettleserutviklere kom opp med sin egen eiendom - en innovasjon som ingen andre har noe sted, men et dokument med en slik egenskap består ikke gyldighetskontrollen fordi en slik egenskap ikke er i spesifikasjonen.

Av disse og andre grunner prefikser nettlesere egenskaper som ikke er en del av den offisielle spesifikasjonen. Hver nettleser har sitt eget prefiks som starter med "-"-tegnet, dette tegnet i begynnelsen av egenskapen, samt dette "_"-tegnet, i henhold til CSS 2.1-spesifikasjonen, betyr at eiendommen er reservert for CSS-utvidelser av visse nettlesere.

Her er de mest populære nettleserne og deres prefikser:

NettleserPrefiks
Opera-o-
Firefox, SeaMonkey, Camino-moz-
Internet Explorer 8 og høyere-ms-
Safari opp til versjon 3, Konqueror-khtml-
Safari 3 og nyere, Google Chrome-webkit-

Det er veldig enkelt å bruke prefikser; bare ta en hvilken som helst CSS-egenskap og bytt ut ønsket prefiks til den, for eksempel til egenskapen opasitet erstatning -moz- det viser seg: -moz-opasitet

Selv om mitt uttrykk faktisk " bruk prefikser"feil! faktisk er ingenting erstattet noe sted, det er bare en eiendom opasitet, er det -moz-opasitet og dette er to forskjellige egenskaper som ikke nødvendigvis trenger å utføre samme funksjon!! - Dette bør forstås..

Du bør også forstå at visse spesifikke nettlesere, opp til visse versjoner, bare kan støtte CSS-egenskaper med sine egne prefikser (igjen, jeg uttrykker meg feil, det er riktig å si dine egne egenskaper - nettleser-CSS-utvidelser), og kan i utgangspunktet stole på på spesifikasjoner, selv om de er under utvikling. – Vi vil vurdere hvert enkelt tilfelle separat i denne læreboken.

Når det gjelder dette kapittelet om åpenhet, bør det bemerkes at Firefox 3.5 og tidligere versjoner bruker sin egen eiendom -moz-opasitet, og Safari-nettleseren opp til versjon 1.1 bruker egenskapen -khtml-opasitet .

Så, for å gjøre eksemplet vårt fullstendig kryss-nettleserkompatibelt, må vi legge til et par linjer til i koden:





Prefikser og åpenhet





Som du kan se, strekker prefikser koden betydelig, og bruken av dem er ikke alltid rettferdiggjort hvis versjonene av nettlesere som ønsker å jobbe med visse egenskaper kun ved å bruke prefiksene, er ganske gamle, slik tilfellet er med egenskapen opasitet, da trenger du ikke å angi dem.. – selv om dette selvfølgelig er et dårlig råd..

Vel, nå noen nyttige tips...

Bruk alltid prefikser (med mindre, selvfølgelig, en bestemt nettleser ikke kan klare seg uten dem) i tilfeller der egenskapen som brukes i stor grad kan påvirke ytelsen, lesbarheten og brukervennligheten til nettstedet. Det er én ting når små ting i nettstedets design ikke fungerer, og en helt annen ting når for eksempel nettstedsmenyen ikke fungerer eller det er umulig å lese teksten på nettstedet fordi nettleseren ikke støtter noen egenskaper og bruker i stedet en lignende av sine egne.

Åpenhet i CSS er en ganske trendy teknikk i det siste, som forårsaker vanskeligheter med implementering på tvers av nettlesere. Det er fortsatt ingen universell metode som gjør at åpenhet kan implementeres for alle nettlesere. Situasjonen har imidlertid forbedret seg betraktelig i det siste.

Denne artikkelen gir en detaljert titt på eksisterende tilnærminger, samt kodeeksempler og forklaringer som vil hjelpe deg å oppnå samme resultat i alle nettlesere med minimal innsats.

En ting som er verdt å nevne er at selv om åpenhet har eksistert i flere år, har den aldri vært en del av CSS-standarden. Dette er en ikke-standard egenskap som bør være en del av CSS3-spesifikasjonen.

Gammel tilnærming

I eldre versjoner av Firefox og Safari må du bruke egenskapen som følger:

#myElement ( -khtml-opacity: .5; -moz-opacity: 0.5; )

Egenskapen -khtml-opacity ble brukt i eldre versjoner av nettlesere. Denne egenskapen er avviklet og er ikke lenger nødvendig med mindre du er sikker på at en betydelig del av nettstedets trafikk kommer fra besøkende som bruker Safari 1.x, noe som selvfølgelig er usannsynlig.

Den neste linjen bruker egenskapen -moz-opacity, som fungerte på veldig tidlige versjoner av Mozilla-motoren. Firefox sluttet å støtte det i versjon 0.9.

CSS-gjennomsiktighet i Firefox, Safari, Chrome og Opera

For de fleste moderne nettlesere er det tilstrekkelig å bruke følgende egenskap:

#myElement ( opasitet: .7; )

I eksemplet ovenfor er elementet satt til 70 % opasitet (30 % gjennomsiktighet). Det vil si at hvis vi setter verdien til én, vil elementet være ugjennomsiktig, og følgelig å sette denne verdien til null vil gjøre det usynlig.

Opacitetsegenskapen behandler 2 desimalsiffer. Det vil si at verdien ".01" vil avvike fra verdien ".02", selv om dette ikke er merkbart.

CSS-gjennomsiktighet for Internet Explorer

Som vanlig er Internet Explorer ikke vennlig med andre nettlesere. I tillegg har vi nå tre versjoner av denne nettleseren i ganske utbredt bruk, hvor åpenhetsinnstillingen i hver av dem er forskjellig og noen ganger krever ekstra innsats for å oppnå et positivt resultat.

#myElement (filter: alpha(opasitet=40); )

Dette eksemplet bruker filteregenskapen, som fungerer i versjon 6-8, men for versjon 6 og 7 er det én begrensning: elementets hasLayout-egenskap må settes til true . Denne egenskapen finnes kun i IE, og du kan lese mer om den, for eksempel på Habré.

En annen måte å angi åpenhet ved å bruke CSS i IE8 er å bruke følgende tilnærming (merk kommentarene):

#myElement ( filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); /* fungerer i IE6, IE7 og IE8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=40)"; / * bare for IE8 */ )

Den første linjen vil fungere i alle for øyeblikket brukte versjoner, den andre - bare i IE8. Merk at den andre linjen bruker -ms- prefikset og verdien står i anførselstegn.

Angi og endre CSS-gjennomsiktighet ved å bruke JavaScript eller jQuery

Du kan bruke følgende kode for å angi åpenhet:

Document.getElementById("myElement").style.opacity = ".4"; // for de fleste nettlesere document.getElementById("myElement").style.filter = "alpha(opasitet=40)"; // for IE

Selvfølgelig, i dette tilfellet er det mye enklere å bruke jQuery, i tillegg vil det fungere i alle nettlesere:

$("#myElement").css(( opasitet: .4 )); // fungerer i alle nettlesere

Du kan animere denne egenskapen:

$("#myElement").animate(( opasitet: .4 ), 1000, function() ( // Animasjonen er fullført; denne koden fungerer i alle nettlesere. ));

RGBA funksjon

CSS3 planlegger å støtte alfakanaler ved å bruke rgba-funksjonen. Denne funksjonen fungerer i Firefox 3+, Opera 10.1+, Chrome 2+, Safari 3.1+. Den brukes slik:

#rgba ( bakgrunn: rgba(98, 135, 167, .4); )

I dette tilfellet indikerer den siste parameteren opasitetsnivået.

HSLA funksjon

I likhet med den forrige funksjonen lar CSS3 deg også angi en semi-transparent farge ved å bruke HSLA-funksjonen, hvis parametere er fargetone, metning, lyshet og alfakanal.

#hsla ( bakgrunn: hsla(207, 38 %, 47 %, .4); )

Et viktig poeng ved bruk av rgba- og hsla-funksjonene er at transparency-innstillingen ikke brukes på underordnede elementer, mens bruken av opacity-egenskapen er arvet.

For å kontrollere gjennomsiktigheten til sideelementer, bruk egenskapen CSS-opacitet. I henhold til spesifikasjonen gjelder den for alle typer noder og støttes i alle moderne nettlesere. Med dens hjelp kan du lage et interessant design eller implementere praktisk interaktiv brukerinteraksjon.

Mulige verdier

Syntaksen for opacitetsegenskapen i css ser slik ut:

Velger (opasitet: 1; ) velger (opasitet: 0; ) velger (opasitet: 0,4; )

Inngangen aksepterer numeriske verdier i området fra 0 til 1. Parameteren kan representere brøker av én, mens en prikk brukes som skilletegn for heltalls- og brøkdelene i CSS.

Et element med null gjennomsiktighet blir usynlig, men fortsetter likevel å innta sin plass på siden og beholder muligheten til å samhandle med brukeren.

Hvis eiendomsverdien ikke er null, vil den faktiske åpenheten beregnes som en prosentandel av en øvre grense. I en normal situasjon bestemmer opasitet: 1 elementets fullstendige opasitet.

Åpenhet av barnenoder

Men hvis elementet har en forelder hvis åpenhet er annen enn én, endres beregningen. En etterkommer kan ikke være "mindre gjennomsiktig" enn noen av dens forfedre. Verdien av den overordnede blokkens opacity CSS-egenskap blir den underordnede nodens øvre grense for opasitet.

Forelder (opasitet: 0,7; ) barn (opasitet: 1; )

I denne situasjonen vil det underordnede elementet være 30 % transparent, selv om opasitetsverdien er én.

Eksempler på bruk

Eksempel 1: Gjennomsiktighet. Det er nødvendig at hovedbakgrunnen til blokken er synlig under målelementet.

Mål ( bakgrunn: svart; opasitet: 0,5; )

Ikke bare bakgrunnen til målblokken blir gjennomskinnelig, men også teksten.

Eksempel 2: Dynamisk gjennomsiktighetskontroll. Verdien av CSS-opacitetsegenskapen til målblokken endres når du holder musepekeren over den.

Mål ( opasitet: 0,2; ) .target:hover ( opasitet: 1; )

Dynamisk åpenhet

Det siste eksemplet viser at gjennomsiktige elementer fortsetter å svare på sidehendelser som hover. Dette lar deg bruke javascript for å kontrollere CSS-opasitetsegenskapen, samt bruke overgangs- og animasjonsmekanismer for å jevnt endre visningsmodusen.

For å få tilgang til gjennomsiktighet fra et skript, må du få tilgang til stilobjektet til et spesifikt element.

// får gjeldende transparensverdi var opacity = element.style.opacity; // sette en ny verdi element.style.opacity = 0,4;

Den jevne forsvinningen av en blokk kan oppnås ved å bruke CSS-overgangsegenskapen:

Element ( opasitet: 0,1; overgang: opasitet 1000ms; ) element:hover ( opasitet: 0,8; overgang: opasitet 2000ms; )

Nå vil elementnoden, når den holdes med musen, endre gjennomsiktighet fra 10 til 80 % i løpet av ett sekund, og når markøren går, vil den dimmes til sin opprinnelige verdi innen to sekunder.

CSS-opasitetsegenskapen i kombinasjon med overgangsmekanismen lar deg lage vakre effekter.

Alfakanal i stedet for opasitet

De viktigste finessene i opasitetsmekanismen i CSS:

  • dens effekt strekker seg ikke bare til bakgrunnen til blokken, men også til tekstinnholdet, som helst er klart;
  • underordnede elementer kan ikke være mindre gjennomsiktige enn deres overordnede elementer.

Hvis disse effektene kompliserer livet til layoutdesigneren, bør du i stedet for opasitet bruke en enkel gjennomsiktig bakgrunn, som definerer verdien i RGBA- eller HSLA-format.

Vlad Merzhevich

Den gjennomskinnelige effekten av et element er godt synlig i bakgrunnsbildet og har blitt utbredt i forskjellige operativsystemer fordi det ser stilig og vakkert ut. I webdesign brukes også gjennomskinnelighet og oppnås gjennom opacitetsegenskapen eller RGBA-fargeformatet som er satt for bakgrunnen.

Gradientblokk

Lag blokken vist i fig. 1. Blokken inneholder en gjennomskinnelig gradientramme med en gradientbakgrunn under tittelen og en liten peker. Bakgrunnen på siden er kun gitt for klarhet i gjennomskinnelighetseffekten; du kan angi hvilket som helst bilde av ditt eget. Minste blokkhøyde er 100px.

Hvordan lage et lag semi-transparent?

For å endre graden av gjennomsiktighet til et element, bruk opacitetsstilegenskapen med en verdi fra 0 til 1, der 0 tilsvarer full gjennomsiktighet, og 1, tvert imot, til objektets opasitet. Denne egenskapen fungerer ikke i Internet Explorer, så du må bruke filter spesifikt for den, en egenskap som ikke er en del av CSS-spesifikasjonen. Eksempel 1 viser hvordan du angir lagtransparens for alle nettlesere.

Gjennomsiktig bakgrunn

Vlad Merzhevich

Delvis åpenhet, når den brukes riktig, ser veldig imponerende ut i nettsteddesign. Hovedsaken er at under de gjennomskinnelige blokkene er det ikke en monokromatisk design, men et bilde; det er i dette tilfellet at gjennomsiktighet blir merkbar. Denne effekten oppnås på mange måter, og hvis du husker alt, inkludert de gammeldagse metodene, er det å bruke et PNG-bilde som bakgrunn, og lage et rutete bilde og opacitetsegenskapen. Men så snart behovet oppstår for å lage en gjennomskinnelig bakgrunn i en blokk, har disse metodene en ubehagelig ulempe. Jeg skal lage en kort anmeldelse for å gjøre det klart hva vi snakker om, så vel som for de leserne som ikke er kjent med utradisjonelle alternativer for å skape en gjennomskinnelig effekt.

Hvordan sette en tabell til å være gjennomsiktig, men noen celler er ikke det?

For å endre gjennomsiktigheten til et element, gir CSS3 opacitetsegenskapen, verdien kan variere fra 0 til 1. Null tilsvarer full gjennomsiktighet for elementet, og en, tvert imot, opasitet. Moderne nettlesere fungerer ganske korrekt med denne egenskapen, med unntak av nettleseren Internet Explorer, så for den må du bruke en spesiell filteregenskap med verdien alpha(Opacity=X) , hvor X kan variere fra 0 til 100.