CSS'den görüntü ayarlamak için olası yöntemlerin bir koleksiyonu
BB2 sitesindeki :after
sözde eleman ya da yeni sözdizimi ::after
gelen CSS3 birlikte content:
özelliği:
İlk W3C Tavsiye: Basamaklı Stil Sayfaları, seviye 2 CSS2 Şartname 12 Mayıs 1998
En son W3C Tavsiye: Seçiciler Seviye 3 W3C Tavsiye 29 Eylül 2011
Bu yöntem, içeriği bir öğenin belge ağacı içeriğinden hemen sonra ekler .
Not: bazı tarayıcılar , en son W3C önerisini bile göz ardı ederek özelliği doğrudan bazı öğe seçiciler üzerinden deneysel olarak oluşturur :content
Şunun için geçerlidir: :before
ve :after
sözde elemanlar
CSS2 sözdizimi (ileri uyumlu):
.myClass:after {
content: url("somepicture.jpg");
}
CSS3 Seçici:
.myClass::after {
content: url("somepicture.jpg");
}
Varsayılan görüntü oluşturma: Orijinal Boyut (açık boyut bildirimine bağlı değildir)
Bu spesifikasyon:: ve: after öğelerinin değiştirilen öğelerle (HTML'deki IMG gibi) etkileşimini tam olarak tanımlamaz. Bu, gelecekteki bir spesifikasyonda daha ayrıntılı olarak tanımlanacaktır.
ancak bu yazının yazıldığı tarihte bile, bir <IMG>
etikete sahip davranış hala tanımlanmamıştır ve saldırıya uğramış ve standartlara uygun olmayan bir şekilde kullanılabilmesine rağmen , birlikte kullanım <img>
tavsiye edilmez !
Harika aday yöntemi, sonuçlara bakın ...
CSS1 'ler
background-image:
özelliği:
İlk W3C Öneri: Basamaklı Stil Sayfaları, seviye 1 17 Ara 1996
Bu özellik, bir öğenin arka plan görüntüsünü ayarlar. Bir arka plan resmi ayarlarken, görüntü kullanılamadığında kullanılacak bir arka plan rengi de ayarlanmalıdır. Görüntü kullanılabilir olduğunda, arka plan renginin üstüne yerleştirilir.
Bu özellik CSS başından beri olmuştur ve yine de görkemli bir söz hak ediyor.
Varsayılan görüntü oluşturma: Orijinal Boyut (ölçeklenemez, yalnızca konumlandırılır)
Ancak ,
CSS3 'ın background-size:
bir özellik birden fazla ölçekleme seçeneklerini izin vererek üzerine geliştirilmiş:
En Son W3C Durumu: Aday Öneri CSS Arka Planlar ve Sınırlar Modül Seviye 3 9 Eylül 2014
[length> | <percentage> | auto ]{1,2} | cover | contain
Ancak bu özellikte bile, konteyner boyutuna bağlıdır.
Hala iyi bir aday yöntem, sonuçlara bakın ...
BB2 'ın list-style:
yanı sıra mülkiyetdisplay: list-item
:
İlk W3C Öneri: Basamaklı Stil Sayfaları, düzey 2 CSS2 Şartname 12 Mayıs 1998
list-style-image:
özelliği, liste öğesi işaretçisi (madde işareti) olarak kullanılacak resmi ayarlar
Liste özellikleri, listelerin temel görsel biçimlendirmesini tanımlar: stil sayfalarının işaretçi türünü ( resim , glif veya sayı) belirtmesine izin verir
display: list-item
- Bu değer, bir öğenin (örn <li>
. HTML'de) bir ana blok kutusu ve bir işaretleyici kutusu oluşturmasına neden olur .
.myClass {
display: list-item;
list-style-position: inside;
list-style-image: url("someimage.jpg");
}
Steno CSS: ( <list-style-type> <list-style-position> <list-style-image>
)
.myClass {
display: list-item;
list-style: square inside url("someimage.jpg");
}
Varsayılan görüntü oluşturma: Orijinal Boyut (açık boyut bildirimine bağlı değildir)
Kısıtlamalar:
Kalıtım 'liste stili' değerleri OL ve UL elemanlarından LI elemanlarına aktaracaktır. Liste stili bilgilerini belirtmenin önerilen yolu budur.
Yazarların liste işaretçisi için ayrı bir stil (renkler, yazı tipleri, hizalama vb.) Belirtmesine veya konumunu ayarlamasına izin vermezler
Bu yöntem <img>
etiket için de uygun değildir , çünkü öğe türleri arasında dönüşüm yapılamaz ve burada Chrome'da çalışmayan sınırlı, uyumlu olmayan bir saldırı .
İyi aday yöntemi, sonuçlara bakın ...
CSS3 bireyin border-image:
mülkiyet öneri :
En Son W3C Durumu: Aday Öneri CSS Arka Planlar ve Sınırlar Modül Seviye 3 9 Eylül 2014
Bir arka plan tipi oldukça tuhaf bir biçimde boyutlarını belirtme dayanır yöntemi (bu kullanım şeklini tanımlanmadı) ve yedek sınır özelliklerinin şimdiye kadar (örn. border: solid
):
Hiçbir zaman kaydırma mekanizmasına neden olmasalar bile, başlangıçtaki görüntülerin yine de bir ata veya görünüm penceresi tarafından kırpılabileceğini unutmayın.
Bu örnek görüntü varlık göstermektedir oluşan tek bir sağ alt köşesinde olarak dekorasyon :
.myClass {
border: solid;
border-width: 0 480px 320px 0;
border-image: url("http://i.imgur.com/uKnMvyp.jpg") 0 100% 100% 0;
}
Şunun için geçerlidir: Dahili tablo öğeleri hariç tüm öğeler border-collapse: collapse
Yine de bir etiketini değiştiremez (ancak burada bir hack ), bunun yerine onu dekore edebiliriz:<img>
src
.myClass {
border: solid;
border-width: 0 96px 96px 0;
border-image: url("http://upload.wikimedia.org/wikipedia/commons/9/95/Christmas_bell_icon_1.png")
0 100% 100% 0;
}
<img width="300" height="120"
src="http://fc03.deviantart.net/fs71/f/2012/253/b/0/merry_christmas_card_by_designworldwide-d5e9746.jpg"
class="myClass"
Standartlar yayıldıktan sonra dikkate alınacak iyi aday yöntemi.
CSS3 'ın element()
notasyonu çalışılan taslak değerinde da bir söz geçerli:
Not: element()
İşlev , gerçek içeriği ve yapısını değil, yalnızca referans verilen öğenin görünümünü yeniden üretir .
<div id="img1"></div>
<img id="pic1" src="http://i.imgur.com/uKnMvyp.jpg" class="hide" alt="wolf">
<img id="pic2" src="http://i.imgur.com/TOUfCfL.jpg" class="hide" alt="cat">
Biz kullanacağız hale içeriğini iki birinin gizli görüntülerin görüntü değiştirmek için arka planı içinde #img1
dayalı kimlik Seçici CSS ile:
#img1 {
width: 480px;
height: 320px;
background: -moz-element(#pic1) no-repeat;
background-size: 100% 100%;
}
.hide {display: none}
Notlar: Deneyseldir ve yalnızca -moz
Firefox'taki önekle çalışır ve yalnızca fazla background
veya background-image
özelliklerdir, ayrıca belirtilen boyutlara ihtiyaç duyar.
Sonuçlar
- Herhangi bir anlamsal içerik veya yapısal bilgi HTML biçimindedir.
- Stil ve sunum bilgileri CSS'ye girer.
- SEO amaçları için saklamayın anlamlı görüntüleri .
- Arka plan grafikleri genellikle yazdırma sırasında devre dışı bırakılır.
- Özel etiketler CSS'den kullanılabilir ve stillendirilebilir, ancak Internet Explorer'ın ilkel sürümleri anlamıyor] ( IE HTML5 etiketlerini (shiv ile) şekillendirmiyor ) Javascript veya CSS kılavuzu olmadan .
- SPA'lar (Tek Sayfa Uygulamaları), tasarım gereği, genellikle arka planda görüntüler içerir
Bunu söyledikten sonra, görüntü gösterimine uygun HTML etiketlerini keşfedelim:
<li>
Öğe [HTML4.01 +]
Mükemmel bir Usecase list-style-image
iledisplay: list-item
Yöntemi .
<li>
Eleman, boş olabilir, izin verir içeriği akış ve hatta atlamak için izin verildiği </li>
bitiş etiketi.
.bulletPics > li {display: list-item}
#img1 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/4/4d/Nuvola_erotic.png")}
#img2 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/7/74/Globe_icon_2014-06-26_22-09.png")}
#img3 {list-style: square inside url("http://upload.wikimedia.org/wikipedia/commons/c/c4/Kiwi_fruit.jpg")}
<ul class="bulletPics">
<li id="img1">movie</li>
<li id="img2">earth</li>
<li id="img3">kiwi</li>
</ul>
Sınırlamalar: şekillendirilmesi zor ( width:
veya float:
yardımcı olabilir)
Şekil öğesi, isteğe bağlı olarak bir başlıkla birlikte (tam bir cümle gibi) bulunan ve tipik olarak belgenin ana akışından tek bir birim olarak adlandırılan bazı akış içeriğini temsil eder.
Öğe içerik olmadan geçerlidir, ancak a içermesi önerilir <figcaption>
.
Öğe böylece resimlere, şemalara, fotoğraflara , kod listelerine vb. Açıklama eklemek için kullanılabilir .
Varsayılan görüntü oluşturma: öğe hem sol hem de sağ dolgu ile sağa hizalı!
Görüntüleri dahil etmek için yazarlar OBJECT öğesini veya IMG öğesini kullanabilir.
data
Nitelik gereklidir ve geçerli bir olabilir MIME türü bir değer olarak!
<object data="data:x-image/x,"></object>
Not: <object>
etiketi CSS'den kullanmanın bir hilesi, özel bir geçerli MimeType ve x-image/x
ardından veri yok (değer, gerekli virgülden sonra veri içermez ,
)
Varsayılan oluşturma: 300 x 150 piksel, ancak boyut HTML veya CSS'de belirtilebilir.
SVG özellikli bir tarayıcıya ihtiyaç duyar ve <image>
tarama görüntüleri için bir öğeye sahiptir
width
Öznitelik varsayılan 300 ve height
öznitelik varsayılan 150 .
<input>
ile elemantype="image"
Sınırlamalar:
... öğenin bir düğme olduğunu belirtmek için öğenin düğme benzeri görünmesi beklenir.
Chrome, metin olmadığında 4x4 piksel boş kareyi izler ve oluşturur
Kısmi çözüm, set value=" "
:
<input type="image" id="img1" value=" ">
Ayrıca , şu anda çalışan bir taslak<picture>
olan HTML5.1'de yaklaşan öğeye dikkat edin .