HTML'nin gizli özellikleri


110

En yaygın olarak kullanılan dil olan HTML (en azından bir biçimlendirme dili olarak), hak ettiği değeri almamıştır.
Uzun yıllardır var olduğu düşünüldüğünde, FORM / INPUT kontrolleri gibi şeyler, yeni kontroller eklenmeden hala aynı kaldı.

Yani en azından mevcut özelliklerden, iyi bilinmeyen ancak çok kullanışlı olan herhangi bir özelliği biliyor musunuz ?

Tabii ki, bu soru şu çizgidedir:

JavaScript'in
Gizli Özellikleri CSS'nin
Gizli Özellikleri C #
Gizli Özellikleri VB.NET'in
Gizli Özellikleri Java'nın
Gizli Özellikleri Klasik ASP'nin
Gizli Özellikleri ASP.NET'in
Gizli Özellikleri Python'un
Gizli Özellikleri TextPad'in
Gizli Özellikleri Eclipse'in Gizli Özellikleri

Çalışma taslağında olduğu için HTML 5.0'ın özelliklerinden bahsetmeyin

Lütfen yanıt başına bir özellik belirtin .

Yanıtlar:


244

Protokolden bağımsız bir mutlak yol kullanma:

<img src="//domain.com/img/logo.png"/>

Tarayıcı, HTTPS üzerinden SSL'de bir sayfayı görüntülüyorsa, o varlığı https protokolü ile talep eder, aksi takdirde HTTP ile talep eder.

Bu, IE'deki o korkunç "Bu Sayfa Hem Güvenli hem de Güvenli Olmayan Öğeler İçeriyor" hata mesajını engeller ve tüm varlık isteklerinizi aynı protokol içinde tutar.

Uyarı: Bir stil sayfası için <link> veya @import üzerinde kullanıldığında, IE7 ve IE8 dosyayı iki kez indirir . Ancak diğer tüm kullanımlar gayet iyi.


29
Bu bir HTML özelliği değil, bir URL / URI özelliğidir.
Gumbo

44
@Gumbo: Doğru, bu bir URI özelliği, ancak kuralları esnetip buraya dahil etmek için yeterince iyi olduğunu düşündüm. Ve yakın zamanda URI Spesifikasyonunun Gizli Özellikleri beklemiyorum. :)
Paul Irish

2
bir eğik çizgi, protokol kısmından değil, alan kısmından
ilişkilidir

2
IE inanılmaz derecede DUMB! Neden dosyayı iki kez DL yapıyor?

5
Bir büyük dezavantaj vardır: Bir dosya diske kaydedildiğinde ve file:protokol kullanılarak erişildiğinde , tarayıcı kaynağı (örneğin, bir CDN veya başka bir harici sunucunun) bulamayacaktır.
Marcel Korpel

138

Etiket etiketi, "for" özelliğini kullanarak etiketi mantıksal olarak form öğesine bağlar. Çoğu tarayıcı, bunu ilgili form öğesini etkinleştiren bir bağlantıya dönüştürür.

<label for="fiscalYear">Fiscal Year</label>
<input name="fiscalYear" type="text" id="fiscalYear"/>

24
evet, bu kadar az sitenin bunu aktif olarak kullandığı şaşırtıcı. Bunu yapmak için js kullanan siteler gördüm ...
Boris Callens

2
Bunu oldukça yakın zamanda keşfettim.
Arnis Lapsa

4
cagdas, HTML'de gerçekten gizli özellikler yoktur, bu belirli bir standarttır.
göz kapaksızlık

54
Yanıtı genişletmek için, bir girişi bir etiketle sarabilir ve for özniteliğini atlayabilirsiniz: <label> Mali Yıl <input name = "fiscalYear" type = "text" /> </label>
eyelidlessness

32
Onay kutularını ve radyo düğmelerini bunlar olmadan kullanmak bir suç olmalıdır.
Kornel

136

ContentEditable özellik (IE, Firefox ve Safari)

<table>
    <tr>
      <td><div contenteditable="true">This text can be edited<div></td>
      <td><div contenteditable="true">This text can be edited<div></td>
    </tr>
</table>

Bu, hücreleri düzenlenebilir hale getirecek! Devam et, bana inanmıyorsan dene .


7
Soru, HTML5 tarafından tanıtılmayan özellikleri gerektiriyor
Quentin

15
David Dorward, ContentEditable'ın IE 5.5'te MS tarafından tanıtıldığı için HTML5 ile tanıtıldığını söylemek pek adil değil, ama evet HTML5'e kadar standartlaştırılmadı; Tyson & Steve, contentEditable, 2.0 sürümünde Safari'ye tanıtıldı, ancak birçok önemli biçimlendirme yöntemi 3.x'e kadar eklenmedi; Victor H Valle, belge türünüze bağlı. HTML 4, daraltıldığında onu = "true" olarak genişletmelidir.
göz kapaksızlık

2
dene bağlantısı uygun bir örneğe yol açmıyor
Gordon Gustafson

4
@Binoj - Kesinlikle hayır. " İçerik düzenlenebilir
Quentin

2
Daha da iyisi, bulunduğunuz herhangi bir web sayfasını düzenlemenize izin vermek için aşağıdakileri yer imi olarak ekleyin: javascript: document.body.contentEditable = 'true'; document.designMode = 'on'; void (0);
Amro

102

Optgroup etiketinin , insanların çok sık kullanmadığı bir özellik olduğunu düşünüyorum . Konuştuğum çoğu insan onun var olduğunun farkına varma eğiliminde değil.

Misal:

<select>
  <optgroup label="Swedish Cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
  </optgroup>
  <optgroup label="German Cars">
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </optgroup>
</select>

Ne yazık ki, menü hiyerarşisinin tarayıcı uygulaması arzulanan çok şey bırakıyor. Optgroup'un pek kullanılmadığından şüpheleniyorum çünkü ilgili kullanım durumları çok az ve çok uzak.
göz kapaksızlık

1
Tüm tarayıcılarda bir seviye desteklenmelidir. Başka bir yerde olduğum bir web forumu, forum listesini ana sayfada kullanılanla aynı bölümlere ayırmak için bazı ekranlarda onu kullandı.
staticsan

@staticsan. Birkaç öğenin küçük sınıflandırılması için yararlı olduğuna katılıyorum.
RichardOD

5
@eyelidlessness: Öğeleri girintileyen veya bir tür 'başlık' metni kullanan açılır menüler görüyorum ---category---.
DisgruntledGoat

4
Bu, bilmediğim güzel bir özellik!
Chrisb

100

En sevdiğim bit, yönlendirme veya URL yeniden yazmayı kullanmak istiyorsanız hayat kurtarıcı olan temel etikettir ...

Diyelim ki şu adrestesiniz:

www.anypage.com/folder/subfolder/

Aşağıdakiler, bu sayfadaki bağlantıların kodu ve sonuçlarıdır.

Normal Çapa:

<a href="test.html">Click here</a>

Sebep olur

www.anypage.com/folder/subfolder/test.html

Şimdi temel etiket eklerseniz

<base href="http://www.anypage.com/" />
<a href="test.html">Click here</a>

Çapa artık şunlara yol açar:

www.anypage.com/test.html

48
Ayrıca /images/image.png komutunu da eğik çizgiyle birlikte kullanabilirsiniz. :-)
molf

46
Temel etiket nükleer bir seçenektir - #define ile eşdeğerdir: eğer bunu takip etmezseniz, gelecekteki geliştiricilere gerçekten açıklayın ve site mimarisinin gerçekten düşük seviyeli bir parçası haline getirin, sinir bozucu olabilir bariz olmayan hatalar. Buna hiç ihtiyacım olmadı , dikkatli kullanın.
annakata

2
Evet, CSS dosyalarını sayfaya dinamik olarak yüklemeye çalışırken temel etiketin JavaScript'ime müdahale ettiğini de gördüm. Ayrıca, IE6'daki bir hata, geçersiz olan etiketi (</base>) açıkça kapatmanızı gerektirir. Koşullu yorumlar buna yardımcı olabilir.
avdgaag

4
Temel URL'nin yalnızca göreli URL yollarına değil, her göreli URL'ye uygulandığını unutmayın. Bu nedenle referans #top, kök dizin belgesinde "üst" ve aynı belgede "üst" olarak çözümlenecektir.
Gumbo

17
Bunu, 'kaynağı görüntülemek' ve onunla çalışmak için bir sayfanın HTML'sini indirmek zorunda olduğum durumlarda son derece kullanışlı buluyorum. Kaynak indirildikten sonra, uygun href niteliğine sahip bir BASE öğesi ekleyebilirsiniz. Bu şekilde, yalnızca kaynak HTML'yi indirdikten sonra yerel olarak çalışabilirsiniz ... tüm javascript, css ve görüntüleri indirmenize gerek yoktur.
Andy Ford

99
<img onerror="{javascript}" />

onerror küçük kırmızı çarpı (IE'de) resmi gösterilmeden hemen önce tetiklenecek bir JavaScript olaydır.

Bunu, bozuk görüntüyü bazı geçerli alternatif içeriklerle değiştirecek bir komut dosyası yazmak için kullanabilirsiniz, böylece kullanıcı kırmızı çarpı sorunuyla uğraşmak zorunda kalmaz.

İlk bakışta bu tamamen faydasız olarak görülebilir, çünkü daha önce görüntünün ilk etapta mevcut olup olmadığını bilmiyor muydunuz? Ama düşünürseniz, bu şey için mükemmel geçerli uygulamalar vardır; Örneğin, sizin kontrol etmediğiniz bir üçüncü taraf kaynaktan bir görüntü sunduğunuzu varsayalım. SO'daki gravatarımız gibi ... güvenilir olmasına rağmen stackoverflow ekibinin hiç kontrol etmediği bir kaynak olan http://www.gravatar.com/ adresinden sunulur . Http://www.gravatar.com/ düşerse , stackoverflow bunu kullanarak çözebilir onerror.


Aha ... Eğer düşündüğüm buysa, gerçekten ihtiyacım olduğunda bunu daha önce bilmeliydim. : /
Arnis Lapsa

Açıklığa kavuşturmak gerekirse, onerror, bir resim yüklenemediğinde bir şeyler yapmanıza izin veren bir javascript olayıdır (tıpkı onclick gibi).
Jehiah

1
Daniel Silveira, bunun aslında, bozuk (örneğin 404) görüntüler durumunda bir hata kodu çalıştırdığını açıklığa kavuşturacak mısınız? Ne olursa olsun, bu bir DOM özelliğidir, kendi başına bir HTML özelliği değildir.
göz kapaksızlık

2
Bunu kullandığım bir uyuşukluk vardı, varolmayan bir görüntüye işaret ediyor, kimseyi tekrarlıyor mu ??
Pharabus

96

<kbd>Klavye girişi için biçimlendirilmesinde eleman

Ctrl+ Alt+Del


Farklı bir yazı tipi biçimi olmasının yanı sıra <kbd> ile ilgili özel bir şey var mı? burada değilse diğer biçimlendirme etiketlerinin bir listesi var mı? w3schools.com/tags/tag_phrase_elements.asp
Arkadaşınız Ken

Özellikle değil, sadece iyi bilinmiyor, sanmıyorum
Russ Cam

3
Varsayılan olarak hiçbir şey yoktur, ancak SO'nun yaptığı gibi öğeyi CSS ile işaretlemek daha temizdir.
Agent_9191

1
Var olduğunun farkında değildim, bu eğlenceli.
Kzqai

85
<blink>

Sitede önemli olan her şey için kullanılmalıdır. En önemli siteler tüm içeriği göz açıp kapayıncaya kadar sarar.

<marquee>

E-kitaplar vb. İçin harika olan gerçekçi bir kaydırma efekti oluşturur.

Düzenleme: Sakin arkadaşlar, bu sadece bir mizah girişimiydi


62
Belki de soru, gizli kalmasını istediğimiz özellikleri listelememeniz gerektiğini belirtmiş olmalıydı .
Ben Blank

12
... bir div görüntüleme kodu için psuedo-terminal stilinin bir parçası olarak <blink> kullandım (: {content: "drthomas @ house: ~ $";} öncesi: {content: "_"; metin sonrası -dekorasyon: blink;} ... harikaydı. Muhtemelen yardım istemeliyim. =]
David, Monica'nın

2
<marquee> <blink> Şimdiye kadarki EN sinir bozucu HTML etiketleri !!! </blink> </marquee> Bunlar gizli değil, sadece bir nedenle kullanılmıyor.
Arkadaşın Ken

2
Sayfanın tamamını Marquee ve
Blink'e çevirdim

3
Lütfen. <blink> için tek meşru kullanım şudur: Schroedinger'ın kedisi <blink> ölmedi </blink>. (Bunun xkcd'de olduğunu sanıyordum, ama şu anda bulamıyorum.)
Christopher Creutzig

84

Çok iyi bilinmemekle birlikte , resmin yüklenmesi sırasında lowsrcgösterilecek resimleri belirtebilirsiniz :lowsrcsrc

<img lowsrc="monkey_preview.png" src="monkey.png" />

Bu, taramalı görüntüleri sevmeyenler için iyi bir seçenektir .

Biraz trivia: Bir noktada bu özellik, 2000 dolaylarında Hotmail'den yararlanmak için kullanılacak kadar belirsizdi .


Bunu bilmiyordum. "Yükleme" animasyonu için kullanılabilir mi?
Boris Callens

2
Opera'da "Hotmail'i sömürme" bağlantısından dolandırıcılık uyarısı alıyorum. : o
jrista

2
Bu bir güvenlik sitesi, güvenli.
Joey Robert

27
Ancak bu nitelik tescillidir. msdn.microsoft.com/library/ms534138(VS.85).aspx
Gumbo

17
Bu özellik HTML4'ten beri kullanımdan kaldırılmıştır - bunu üretim web sitelerinde kullanmamalısınız.
Ben Hull

67

DELve INSsilinen ve eklenen içerikleri işaretlemek için:

HTML <del>sucks</del> <ins>rocks</ins>!

10
Kesinlikle yeterince kullanılmıyor.
göz kapaksızlık

2
@eyelidlessness: Silinen / eklenen metni işaretlemenin bu kadar yararlı olduğu yeterli durum yoktur.
DisgruntledGoat

2
Ben StackOverflow kullanılan yemin edebilirim <ins>ve <del>bir süre geri bir noktada Düzeltmeler sayfalarında, ancak şimdi kullanır <span class="diff-add">ve <span class="diff-delete">. :(
sistem

1
@DisgruntledGoat wiki revizyon geçmişleri? bunun için bol kullanım durumu
HorusKol

3
@Horus: Kullanımları bulabileceğinizden emin olabilirsiniz, ancak büyük şemada bu hala çok fazla durum değil.
DisgruntledGoat

58

Düğme etiketi yeni input submitetiket ve birçok insan hala aşina değiller. Düğmedeki metin örneğin düğme etiketi kullanılarak şekillendirilebilir.

<button>
    <b>Click</b><br />
    Me!
</button>

İki satırlı bir düğme oluşturacak, ilki kalın yazıyla " Tıkla " ve ikincisi "Ben!" Diyor. Burada deneyin .


15
IE <8'de kırılması utanç verici. Sorunların üstesinden gelmek mümkündür, ancak bu acı verici olabilir ve bazen web sunucusu ile sunucu tarafı programlama ortamı arasında çalışan güvenlik korumasına çarpabilirsiniz.
Quentin

6
Ancak IE <8, öğenin değerini değil içeriğini gönderecektir. Bazı sürümlerin her zaman başarılı bir kontrol olarak ele alacağına inanıyorum (tıklanmasa bile).
Quentin

4
Ve eğer <düğmeyi rahatlatırsanız> düğme metnini de değiştirebilirsiniz! Bunun için geçerli bir kullanım bulabilen herkese işaret eder. :)
Gavin

4
Neden bir "girdi" türü gönderme olduğunu asla anlamadım. Hiçbir şey girmiyor, sadece diğer alanlara girdiklerinizi gönderiyor.
DisgruntledGoat

3
@DisgruntledGoat: ad / değer çifti gerçekten gönderilecektir. Bir formda birden fazla düğmeniz varsa (örn. Düzenleme, silme, yukarı taşıma, vb.) Ve basılan düğmeyi ayırt etmek istiyorsanız kullanışlıdır. Ne yazık ki aynısı buttonIE <8 için geçerli değildir , şaşırtıcı bir şekilde TÜM buttonöğelerin ad / değer çiftlerini gönderir .
BalusC

56

Yazdırmak için css belirtin

<link type="text/css" rel="stylesheet" href="screen.css" media="screen" />
<link type="text/css" rel="stylesheet" href="print.css"  media="print" />

1
Bunu birkaç hafta önce
keşfetti

41
Gerçekten gizli imo değil.
Dmitri Farkov

Bu ortak kullanımdadır.
UpTheCreek

Bununla daha önce ilgilenmediyseniz, umarım daha önce herhangi bir prodüksiyon web sitesi yapmamışsınızdır ...
Kzqai

bu nasıl gizli sayılabilir?
Marin

54

<dl> <dt>ve <dd>ürün genellikle unutulan ve onlar Definition List, tanımı Dönemi ve Tanımı anlamını taşımaktadır.

Sırasız bir listeye ( <ul>) benzer şekilde çalışırlar, ancak tekli girişler yerine daha çok bir anahtar / değer listesi gibidir.

<dl>
  <dt>What</dt><dd>An Example</dd>
  <dt>Why</dt><dd>Examples are good</dd>
</dl>

Ek olarak, dl / dt / dd semantiği benzer listeler için uygundur (örn. Yapı diyaloglar için önerilmiştir).
göz kapaksızlık

2
Varsayılan sunum o kadar hoş değil, ancak insanlar CSS ile öğelerin birçok şekilde şekillendirilebileceğini unutuyor.
DisgruntledGoat

18
Çoğu zaman unutulan daha ilginç olan şey, biçimin anahtar / değer / değer / değer / değer / anahtar / değer olmasıdır
Quentin

1
@D_N, sanırım anlaşmazlığın yattığı yer, önerilen kullanımları ondan ayrı ve çelişkili değil, tanımın ve anlambilimin bir parçası olarak görmemdir .
göz kapaksızlık

1
@D_N ve @eyelidlessness - Bruce Lawson'ın bir sohbeti anlamsal olarak işaretlemeyle ilgili notuna bakın ... ayrıca jüri hala HTML5 iletişim öğesinde ... brucelawson.co.uk/2006/…
Fenton

52

Tam olarak gizli değil, ama (ve bu IE'nin hatası) benim zevklerime göre yeterince insan thead, tbody, tfoot hakkında bilgi sahibi değil . Ve siz kaç tfoot görünmesi gerekiyordu biliyordu yukarıdaki işaretlemesinde tbody?


1
boris callens, Evet, tead, tbody ve tfoot'un hiçbiri yoksa, tbody ima edilir.
göz kapaksızlık

2
IE5, TBODY'yi doğru bir şekilde uygulamış olsaydı, daha fazla insan onu kullanırdı. Birkaç yıl önce ana sorun buydu. Mozilla ve Opera, gerçekten harika olan kaydırmalı TBODY'yi destekledi; maalesef IE5 olmadı.
staticsan

9
Onlar koymalıyız çünkü baskı için yararlıdır theadve tfoother sayfanın üst ve altında. theadUzun uzun masalarınız olduğunda, tarayıcıda tekrar etmek için bir mekanizma olmaması çok yazık .
DisgruntledGoat

1
Ayağın üstünden geçtiğini biliyordum ve bence bu oldukça aptalca. Ayağımı aşağıya koydum, mantıklı olduğu yerde, bir doğrulayıcı hatası aldım, tfoot'u tbody üzerinde hareket ettirdim (kafası karışmış ama her zaman uyumlu) ve tahmin et ne oldu ?! Tabloyu vurgulamaya çalıştığınızda, tarayıcı (en azından FF), görsel olarak vücudun altında olsa bile, vücuttan ÖNCE ayağı vurgular! Ve sonra!!! bir metin düzenleyiciye kopyaladığınızda, görsel olarak vücudun ÜZERİNDE olur. Tamamen keyfi bir kural.
Anthony

3
@Anthony: Yavaş bir bağlantınız varsa anlamlıdır, bu, tablo içeriği hala yüklenirken tüm üstbilgileri ve altbilgileri görebileceğiniz anlamına gelir.
me_ ve

50

wbrVeya kelime-break etiketi. Quirksmode'dan:

(kelime sonu) şu anlama gelir: "Tarayıcı isterse buraya bir satır sonu ekleyebilir." Tarayıcı satır sonunun hiçbir şey olmamasını gerektirdiğini düşünmez.

<div class="name">getElements<wbr>ByTagName()</div>

Tarayıcıya satır sonu ekleme seçeneği veriyorum. Tabloda bol alan olduğunda çok büyük çözünürlüklerde buna gerek olmayacaktır. Bununla birlikte, daha küçük çözünürlüklerde, stratejik olarak yerleştirilmiş bu tür satır kesmeleri, tablonun pencereden daha büyük büyümesini ve dolayısıyla yatay kaydırma çubuklarına neden olmasını engeller.

&shy;Aynı sayfada bahsedilen HTML varlığı da var . Bu aynıdır, wbrancak bir kesme eklendiğinde bir sonu -belirtmek için bir hipen ( ) eklenir. Baskıda olduğu gibi.

Bir örnek:

TextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextTextText


2
Dikkatli olun çünkü bunda zayıf tarayıcı desteği var
Christophe Eblé

7
"IE8 as IE8" bunu desteklemiyor ve Windows için Safari 3.0'da hatalı. Bunun dışında destek oldukça iyi. Bağlantıdaki uyumluluk tablosuna bakın.
aleemb

Hmm site noktası referansı bu etiketi kullanımdan kaldırıldı ve işe yaramaz olarak işaretledi, kim haklı? reference.sitepoint.com/html/wbr
Christophe Eblé

HTML spesifikasyonunun bir parçası olarak kullanımdan kaldırılmış olabilir, ancak yine de tarayıcılarda çalışır. Şüpheniz olduğunda, QuirksMode kararını uygulayın (uyumluluk tabloları artık Google tarafından desteklenmektedir).
aleemb

Görünüşe göre bu, bir sonraki css standardına dahil edilmesi çok faydalı bir şey olacak!
James

43

Çok az kullanılan bir özellik, sayfada görünür içerik sağlayan hemen hemen her öğenin bir 'başlık' özelliğine sahip olabilmesidir.

Böyle bir özniteliğin eklenmesi, fare öğenin üzerine 'getirildiğinde' bir 'araç ipucu'nun görünmesine neden olur ve sayfanın çok kalabalık olmasına neden olmayacak şekilde gerekli olmayan - ancak yararlı - bilgiler sağlamak için kullanılabilir. . (Veya zaten kalabalık olan bir sayfaya bilgi eklemenin bir yolu olabilir)


Evet, "başlık" özelliği, özellikle tıklanması gereken öğeler için oldukça kullanışlıdır.
Steve Harrison

6
Görünen araç ipucu tarayıcıya özeldir. Tüm tarayıcılar başlık özniteliğini aynı şekilde göstermeyecektir. Ama kesinlikle kullandığım güzel bir özellik.
Travis

8
Title özelliği yararlıdır, ancak yalnızca uygun şekilde kullanıldığında. Çoğu tarayıcı, araç ipucunu kaybolmadan önce yalnızca birkaç saniye oluşturur. Tasarımcıların başlık özniteliğini 3 veya 4 satırlık metinle doldurma ihtiyacını hissetmelerinden nefret ediyorum, bu da fareyi üzerine getirip ardından geri kalanını okumak için fareyi tekrar üzerine getirmenize neden oluyor.
priestc

Bunu jQuery ile bağlantılı olarak kullanmak mükemmelliğe eşittir.
Levi Morrison

Levi - bazı örnekler verebilir misin?
belugabob

38

Bir etikete birden çok html / css sınıfı uygulama. Burada aynı gönderi

<p class="Foo Bar BlackBg"> Foo, Bar and BlackBg are css classes</p>

22
Bunlar HTML sınıflarıdır, CSS sınıfları değildir. CSS'nin sınıfları yoktur (sınıf seçicileri vardır). HTML sınıfları, CSS dışındaki şeyler için kullanışlıdır.
Quentin 05

36
Vaov! İnsanların bunu "gizli" bir özellik olarak gördükleri gerçeğinin üstesinden gelemiyorum. Oğlum, bazı "gerçekten gizli" özellikler yayınladığım için kendimi aptal gibi hissediyorum çünkü bunu destekleyen insanlar muhtemelen DTD'yi genişletmenin ne anlama geldiğini anlamaya bile yaklaşmayacaklar.
aleemb

5
d03boy, p.foo, p.var, p.foo.bar ile aynı değildir. İlki "foo" veya "var" sınıfına sahip herhangi bir paragrafı seçer, ikincisi ise her iki sınıfla bir paragraf seçer.
göz kapaksızlık

5
HTML sınıflarıyla ilgili olan şey iyi bir noktadır, çünkü beni bir noktaya getiriyor - html css'den haberdar edilmemeli ... html oluşturabilmeli ve tasarımlarını olmadan uygulayabilen bir tasarımcıya aktarabilmelisiniz. html'yi değiştirmeye ihtiyaç duymak (henüz tam olarak değil;)) .. bu nedenle adınız ve sınıfları kullanma şekliniz .. css özelliklerini hedeflemek için sınıflar oluşturmayın .. öğenin ne olduğunu belirlemek için sınıfları kullanın '.
meandmycode

1
Teknik olarak, "Foo Bar BlackBg" tek bir sınıftır ve p.foo sadece p [class ~ = foo] için sözdizimsel şekerdir ( spesifikasyona bakınız ). Yine de, bunu birden fazla sınıfa sahip olarak düşünmek daha kolay.
Tgr

34

Hepimiz DTD'nin veya Belge Türü Beyanlarını biliyoruz (sayfanızın W3C doğrulayıcısı ile başarısız olmasına neden olan şeyler). Ancak, özel öğeler için bir öznitelik listesi bildirerek DTD'leri genişletmek mümkündür .

Örneğin , etikete eklenmesi nedeniyle W3C doğrulayıcısı bu sayfa için başarısız olacaktır . Ancak, bunu yaparak geçmesini sağlayabilirsiniz:behavior="mouseover"<p>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
<!ATTLIST p behavior CDATA #IMPLIED>
]>

QuirksMode'da Özel DTD'ler hakkında daha fazla bilgi edinin .


10
Elbette, bu onu "XHTML 1.0 Transitional" değil "Geçerli: Özel biçimlendirme diliniz" yapar
Quentin

3
+1. Bunun neden -1 olduğunu bilmiyorum. Her neyse, tarayıcı desteğinin hemen hemen sıfır olduğuna dikkat edilmelidir.
göz kapaksızlık

Opera'nın bunu desteklediğinden oldukça eminim.
Rich Bradshaw

2
@eyelidlessness yalnızca XHTML'de çalışır. Metin / HTML olarak gönderilen sahte XHTML'de çalışmaz.
Kornel

2
Eesh, bunun hayranı değil. Bana göre HTML'nin değeri, gezegendeki herkesin ne anlama geldiğini bilmesidir (aşağı yukarı) çünkü hepimiz aynı etiketleri ve nitelikleri kullanıyoruz. classÖzelliğin neden yeterince genişletilebilir olmadığından emin değilim .
Paul D. Waite

28

Temel 64 kodlanmış dizeyi image, JavaScript, iframe, link için source / href niteliği olarak atayabiliriz

Örneğin

<img alt="Embedded Image" width="297" height="246" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA..." />

div.image {
  width:297px;
  height:246px;
  background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA...);
}

<image>
  <title>An Image</title>
  <link>http://www.your.domain</link>
  <url>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASkA...</url>
</image>

<link rel="stylesheet" type="text/css"
  href="data:text/css;base64,LyogKioqKiogVGVtcGxhdGUgKioq..." />

<script type="text/javascript"
  href="data:text/javascript;base64,dmFyIHNjT2JqMSA9IG5ldyBzY3Jv..."></script>

Referanslar

HTML işaretlemesini kullanarak görüntüleri nasıl oluşturabilirim?

Base64 Encoder / Translator'a İkili Dosya


4
Ne yazık ki, IE <8 bunu desteklemiyor. Bununla birlikte şu tarayıcıları için MHTML kullanabilirsiniz: phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under
Mathias Bynens

26

Yakın zamanda fieldset ve etiket etiketlerini öğrendim. Yukarıdaki gibi, gizli değil ama formlar için kullanışlıdır.

<fieldset> açıklaması

Misal:

<form>
  <fieldset>
    <legend>Personalia:</legend>
    Name: <input type="text" size="30" /><br />
    Email: <input type="text" size="30" /><br />
    Date of birth: <input type="text" size="10" />
  </fieldset>
</form>

Lütfen bunu kullanmak için bir örnek sağlayın.
Binoj Antony


Aspnet mvc örnek sayfasından alan seti bulundu. ^ ^
Arnis Lapsa

2
Bunu bilmiyordum. İşte W3c
MitMaro

Alan setleri ve efsaneler harika. Formlarınızı işaretlemenin gerçekten güzel bir yolu.
Neil Aitken

25

Sayfaya başka bir belge eklemek için bir objectyerine etiketini kullanabilirsiniz iframe:

<object data="data/test.html" type="text/html" width="300" height="200">
  alt : <a href="data/test.html">test.html</a>
</object>

57
Daha az iyi desteklenmesi ve daha az özelliğe sahip olması dışında neredeyse tam olarak bir iframe gibi çalışır.
Quentin

iframe kullanımdan kaldırıldı, umarım yakında daha iyi destek alacağız,
Gordon Gustafson

12
iframe HTML 5'te kullanımdan kaldırılmadı
Zach

Gömülü sayfadan XSS saldırılarını önlüyor mu?
isimsiz korkak

1
İç çerçevelerde olduğu gibi SOP kullandığına inanıyorum.
Zach

25

<optgroup>insanların bölümlere ayrılmış <select>listeler hazırlarken genellikle gözden kaçırdığı harika bir seçenektir .

<select>
  <optgroup label="North America">
    <option value='us'>United States</option>
    <option value='ca'>Canada</option>
  </optgroup>
  <optgroup label="Europe">
    <option value='fr'>France</option>
    <option value='ir'>Ireland</option>
  </optgroup>
</select>

yerine kullanmanız gereken şey

<select>
  <option value=''>----North America----</option>
  <option value='us'>United States</option>
  <option value='ca'>Canada</option>
  <option value=''>----Europe----</option>
  <option value='fr'>France</option>
  <option value='ir'>Ireland</option>
</select>

25

Çoğu kişi, basılan form düğmesini sadece bir ad / değer çifti vererek ayırt edebileceğinizin farkında değil. Örneğin

<form action="process" method="post">
     ...
     <input type="submit" name="edit" value="Edit">
     <input type="submit" name="delete" value="Delete">
     <input type="submit" name="move_up" value="Move up">
     <input type="submit" name="move_up" value="Move down">
</form>

Sunucu tarafında, basılan gerçek düğme, yalnızca düğme adıyla ilişkili istek parametresinin varlığı kontrol edilerek elde edilebilir. Değilse null, düğmeye basılmıştır.

Gördüğüm çok ait gereksiz JS hack / form eylemi değiştirme veya gizli giriş değerini değiştirerek önceden düğmeye basıldığında bağlı örneğin bunun için geçici çözümler. Bu sadece şaşırtıcı.

Ayrıca, tablo satırlarında olduğu gibi birden çok onay kutusunun işaretli olanlarını toplamak için neredeyse çok sayıda JS hack / geçici çözüm gördüm. Bir tablo satırının her seçiminde / kontrolünde, JS, satır dizinini, daha sonra sunucu tarafında bölünecek / ayrıştırılacak olan gizli bir giriş öğesindeki virgülle ayrılmış bir değere ekler. Bu, birden çok girdi öğesine aynı adı ancak farklı bir değeri verebildiğiniz ve bunlara sunucu tarafında bir dizi olarak erişebildiğinizin farkında olmamanın bir sonucudur . Örneğin

<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...

Farkında olmama, her onay kutusuna farklı bir ad verir ve tüm değer özniteliğini atlar. Bazı JS hack / geçici çözüm içermeyen durumlarda , kontrol edilen öğeleri ayırt etmek için sunucu tarafı kodunda gereksiz yere ezici bir sihir de gördüm .


1
Hey .. Görünüşe göre bu HTML'nin bir başka gizli özelliği: /;)
BalusC

1
Bir formda birden fazla gönderme düğmesi varsa ve kullanıcı birini tıklarsa, Internet Explorer'ın belirli sürümleri sunucunuza hepsinin tıklandığını neşeyle söyler. Olağanüstü.
detly

1
@detly: yalnızca <button type="submit">yerine kullanırsanız <input type="submit">:)
BalusC

1
... buuuuut IE6 da sorun yaşamıyor <input type="submit">mu? (Bu sorunla ilgili hafızam bulanık - uzun zamandır işverenleri dahili web uygulamaları için IE uyumluluğu konusunda endişelenmemeye ikna ettim, bu yüzden artık benim sorunum değil. Ancak bu sorunu IE6'da çözülebilir hale getirmenin önündeki bazı engelleri hatırlıyorum. )
detly

2
Bu pek i18n dostu değil.
zneak

22

Colgroup etiketi .

<table width="100%">
    <colgroup>
        <col style="width:40%;" />
        <col style="width:60%;" />
    </colgroup>
    <thead>
        <tr>
            <td>Column 1<!--This column will have 40% width--></td>
            <td>Column 2<!--This column ill have 60% width--></td>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Cell 1</td>
            <td>Cell 2</td>
        </tr>
    </tbody>
</table>

15
Deneyimlerime göre, topluluk grubu desteği en iyi ihtimalle aksaklıktır.
göz kapaksızlık

Çarpıcı şekilde benzer WPF Grid
Binoj Antony

18

Eğer forbir öznitelik <label>etiketi belirtilmemişse, bu örtük ilk çocuk olarak ayarlanır <input>, yani

<label>Alias: <input name="alias" id="alias"></label>

eşdeğerdir

<label for="alias">Alias:</label> <input name="alias" id="alias">

4
Ancak bu, for özniteliğinden daha az tarayıcı desteğinden yararlanıyor
Quentin

4
@David - Bunu yedekleyecek herhangi bir belgeniz var mı? Bu kullanımı desteklemeyen bir tarayıcı gördüğümü sanmıyorum. IE6 / 7, FF2 / 3, Safari 3 ve Chrome 1 / 2'de kişisel olarak test ettim. Kendimi Opera'da test etmedim, ancak işe yaramazsa çok şaşırırdım. Bu davranış, ilk olarak on bir yıldan daha önce yayınlanan orijinal HTML 4.0 spesifikasyonunun bir parçasıdır: w3.org/TR/1998/REC-html40-19980424/interact/forms.html#adef-for
Ben Blank

Ayrıca, bir etiketin içine girdi koymak geçerli değildir ve DOH, her iki örnekte de girdi etiketinizi kapatmadınız!
Anthony

5
Her iki konuda da yanılıyorsunuz: bu geçerli bir uygulamadır ve bitiş etiketine girdi öğeleri girmesi yasaktır.
moo

15

Bağlantı olarak düğme, JavaScript yok :

Form eylemine her tür dosyayı koyabilirsiniz ve bağlantı görevi gören bir düğmeniz vardır. Onclick olaylarını veya benzerlerini kullanmaya gerek yok. Hatta forma bir "hedef" yapıştırarak dosyayı yeni bir pencerede açabilirsiniz. Bu tekniği uygulamada pek görmedim.

Bunu değiştir

<a href="myfile.pdf" target="_blank">Download file</a>

Bununla:

<form method="get" action="myfile.pdf" target="_blank">
    <input type="submit" value="Download file">
</form>

27
Düğme, tarayıcılarını devralan Adobe Acrobat'tan hoşlanmayan kullanıcılar için gerekli olabilecek "Dosyayı farklı kaydet" seçeneğine sahip olmayacaktır.
Kornel

PDF dosyasına erişirken varsayılan tarayıcı davranışıyla davranacaktır. Bir HTML dosyası, bir kelime dosyası, bir zip dosyası veya istediğiniz herhangi bir şey olabilir.
Wadih M.

Bir bağlantı etiketi hangi durumda bir onclick etkinliği gerektirir? ve neden 3 satır html 1'den daha iyi olsun? Fikir bir bağlantı yerine bir düğmeye sahip olabileceğiniz, yani hoş ve düğme gibi mi? Bu konuda huysuz görünmeme rağmen, aslında bağlantılar yerine düğmeler kullanan bir sayfam var çünkü dosya kullanıcı istediğinde dinamik olarak oluşturuluyor, bu yüzden şu adrese bir bağlantı istemedim: blah.php? Stuff = "userdata" Bu rotaya gitmiş olsam bile, dosya adını betiğin dosyaya verdiği dosya adı yerine dosya üreten komut dosyasının adı olarak alma riskini almak istemedim.
Anthony

1
Neden <a> etiketini bir düğme gibi biçimlendirmiyorsunuz? Bu, işaretlemenizde çok fazla önemsiz gibi görünüyor.
UpTheCreek

2
@UpTheCreek bazı web uygulamaları işletim sistemi ile aynı görünmek ister. Örneğin, kullanıcı Windows'u kullandığında çirkin bir düğme ve kullanıcı Mac OS X kullandığında güzel bir düğme.

13

Sayfayı X saniyede yenilemenin en basit yolu - META Yenileme

<meta http-equiv="refresh" content="600">

İçerikteki değer, sayfanın yenilenmesini istediğiniz saniyeyi belirtir.
[Düzenle]

<meta http-equiv="refresh" content="0; url=foobar.com/index.html">

Basit bir yönlendirme yapmak için!
(Teşekkürler @rlb)


13
Tabii ki, çalışma dışarı hangi unsurlar ... daha güzel bir kullanıcı deneyimi AJAX sonuçları aracılığıyla güncelleyerek ferahlatıcı ve ihtiyaç
Steve Harrison

11
META yenilemesi, bazı kullanıcı formu aktivitesi olan sayfalarda gerçekten iyi bir şey yapmaz, çünkü kullanıcının form doldurmasını kesintiye uğratabilir ve tüm işi atabilir. Bence bu tür yenilemelerin en iyi olacağı nadiren bir durum var. Normalde çıkmanın kolay yolu bu.
Robert Koritnik

11
/ me böyle yenilenen sayfalardan nefret ediyor ... yasaklanmalı = /
Svish

3
Bu ayrıca, kullanıcıya oturumunun zaman aşımına uğradığını ve kaldırıldığını bildirmek için oturum zaman aşımından biraz daha az bir süreye ayarlanmışsa yararlı olabilir.
fforw

1
Kısa zaman aşımları geri git düğmesi.
Kornel

12

<html>, <head>Ve <body>etiketleri isteğe bağlıdır. Bunları atlarsanız, ayrıştırıcı tarafından uygun yerlere sessizce eklenirler. Bunu HTML'de yapmak tamamen geçerlidir (tıpkı ima edildiği gibi <tbody>).

Teoride HTML , bir SGML uygulamasıdır. Bu muhtemelen en kısa geçerli HTML 4 belgesidir:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<title//<p/

Yukarıdakiler W3C Doğrulayıcı dışında hiçbir yerde çalışmaz. Bununla birlikte, en kısa geçerli HTML5 text/htmlbelgesi her yerde çalışır:

<!DOCTYPE html><title></title>

4
Neyin reklamını yaptığına dikkat etmelisin. Yukarıdaki kod, w3c doğrulayıcısında 4 uyarı ile doğrulamayı geçecektir, ancak DocType HTML 4.0'dır. HTML 4'ün SGML'nin vazgeçilmezi olduğu ve bu nedenle bu gevşek doğrulama standardını koruduğu oldukça derli topludur, ancak bu DTD'yi XHTML 1.0 STRICT olarak değiştirirseniz, 15 hata alır ve bu neredeyse karakter sayısına eşittir. XHTML geliştirildi çünkü HTML çok tembel (ve dolayısıyla güvenli değil), bu yüzden bundan artık yararlanmak istemiyoruz.
Anthony

3
HTML / SGML belgesinin DOCTYPE'ını XHTML / XML olarak değiştirirseniz, anlamsız karışım elde edersiniz. Bu oldukça açık ve neden buna işaret ettiğinden emin değilim.
Kornel

3
Bu örnek teknik olarak geçerli bir HTML 4 olabilir, ancak tarayıcılar bu kısaltılmış SGML sözdizimini desteklemiyor. Aşağıdakiler, tarayıcıların aslında desteklediği en kısa geçerli HTML 5 belgesidir:<!DOCTYPE html><title></title>
Brian Campbell

Sadece doğrulama açısından değil, dışarıda bırakmak head/ bırakmak ne kadar uyumlu body?
kibibu

@kibibu: Tarayıcıların bununla ilgili sorunları yok. Eskiden Opera'nın eski sürümleri <head>DOM'da bazen ihmal ederdi , ancak başlık içeriği DOM'deydi ve yine de çalışıyordu. Bulduğum en büyük sorun, OpenID istemcilerinin <head>açıkça mevcut olmaları gerektiğidir.
Kornel

11

langNitelik çok iyi bilinen ama çok kullanışlı değildir. Öznitelik, içeriğin dilini tüm belgede veya tek bir öğede tanımlamak için kullanılır. Dil kodları, ISO 2 harfli Dil kodunda verilir (yani, İngilizce için 'en', Fransızca için 'fr').

Tırnak işaretlerinin görünümünü vb. Ayarlayabilen tarayıcılar için kullanışlıdır. Ekran okuyucular da lang arama motorlarının yanı sıra öznitelikten de yararlanır .

Site noktası,lang özniteliğin güzel bir açıklamasına sahiptir .

Örnekler

DOM'de langdaha düşük bir düzeydeki başka bir özellik tarafından geçersiz kılınmadıkça, tüm belge için dili İngilizce olarak belirtin .

<html lang="en">

Aşağıdaki paragrafta dili İsveççe olarak belirtin.

<p lang="sv">Ät din morgongröt och bli stor och stark!</p>

10

"! DOCTYPE" beyanı . Bunun gizli bir özellik olduğunu düşünmeyin, ancak çok iyi bilinmese de çok kullanışlı görünüyor.

Örneğin

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd">

10
Ve "en güncel biçimlendirme dilleri için zorunlu ve biri olmadan güvenilir bir belgeyi doğrulamak mümkün değildir" söz ... değil validator.w3.org/docs/help.html#faq-doctype
Svish

Bunun artık "iyi bilinmediğini" düşünmüyorum. IE 6 ile IE 7 arasındaki sürede, belge türü kullanımı ~% 1'den>% 50'ye çıktı.
göz kapaksızlık

@eyelidlessness Çoğu IDE bu etiketi içerir, bu yüzden kullanımı artmıştır. Bu etiketin iyi bilinmediğini düşünüyorum.
Daniel Moura

6
Ve katı bir belge türü kullanmak, tarayıcı tutarsızlıklarının% 95'ini düzeltir.
DisgruntledGoat

3
Standardın bir parçası ve oradaki geliştiricilerin% 99'u tarafından kullanılan "gizli özellik" gibi görünmüyor.
WhyNotHugo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.