คุณลักษณะที่ซ่อนอยู่ของ HTML


110

HTML เป็นภาษาที่ใช้กันอย่างแพร่หลายมากที่สุด (อย่างน้อยก็เป็นภาษามาร์กอัป) ไม่ได้รับเครดิตตามกำหนด
เมื่อพิจารณาว่ามีมาหลายปีแล้วสิ่งต่างๆเช่นการควบคุม FORM / INPUT ก็ยังคงเหมือนเดิมโดยไม่มีการเพิ่มการควบคุมใหม่

อย่างน้อยที่สุดจากคุณสมบัติที่มีอยู่คุณรู้จักคุณสมบัติใดบ้างที่ไม่เป็นที่รู้จักแต่มีประโยชน์มาก

แน่นอนว่าคำถามนี้เป็นไปตาม:

คุณลักษณะที่ซ่อนอยู่ของ JavaScript
คุณลักษณะที่ซ่อนอยู่ของ CSS
คุณลักษณะที่ซ่อนอยู่ของ C #
คุณลักษณะที่ซ่อนอยู่ของ VB.NET
คุณลักษณะที่ซ่อนอยู่ของ Java
คุณลักษณะที่
ซ่อนอยู่ของคุณลักษณะที่ซ่อนอยู่ของ ASP.NET แบบคลาสสิกของ ASP.NET
คุณลักษณะที่ซ่อนของ Python
คุณลักษณะที่ซ่อนอยู่ของ TextPad
คุณลักษณะที่ซ่อนของ Eclipse

อย่าพูดถึงคุณลักษณะของ HTML 5.0 เนื่องจากอยู่ในร่างการทำงาน

โปรดระบุหนึ่งคุณลักษณะต่อคำตอบ

คำตอบ:


244

ใช้พา ธ สัมบูรณ์ที่ไม่ขึ้นกับโปรโตคอล:

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

หากเบราว์เซอร์กำลังดูเพจใน SSL ผ่าน HTTPS ก็จะร้องขอเนื้อหานั้นด้วยโปรโตคอล https มิฉะนั้นจะขอด้วย HTTP

ซึ่งจะช่วยป้องกันข้อความแสดงข้อผิดพลาด "หน้านี้มีทั้งรายการที่ปลอดภัยและไม่ปลอดภัย" ใน IE ทำให้คำขอเนื้อหาทั้งหมดของคุณอยู่ในโปรโตคอลเดียวกัน

ข้อแม้: เมื่อใช้ใน <link> หรือ @import สำหรับสไตล์ชีต, IE7 และ IE8 ดาวน์โหลดไฟล์สองครั้ง อย่างไรก็ตามการใช้งานอื่น ๆ ทั้งหมดนั้นใช้ได้ดี


29
นั่นไม่ใช่คุณลักษณะ HTML แต่เป็นคุณลักษณะ URL / URI
Gumbo

44
@Gumbo: จริงอยู่มันเป็นคุณสมบัติ URI แต่ฉันคิดว่ามันดีพอที่จะโค้งงอกฎและรวมไว้ที่นี่ และฉันไม่คาดหวังคุณสมบัติที่ซ่อนอยู่ของ URI Spec ในเร็ว ๆ นี้ :)
Paul Irish

2
เครื่องหมายทับหนึ่งตัวสัมพันธ์กับส่วนโดเมนไม่ใช่จากส่วนโปรโตคอล
SztupY

2
IE เป็น DUMB อย่างไม่น่าเชื่อ! ทำไม f *** hell ถึง DL ไฟล์สองครั้ง

5
มีข้อเสียเปรียบที่สำคัญประการหนึ่งคือเมื่อไฟล์ถูกบันทึกลงในดิสก์และเข้าถึงโดยใช้file:โปรโตคอลเบราว์เซอร์จะไม่สามารถค้นหาทรัพยากรได้ (เช่นของ CDN หรือเซิร์ฟเวอร์ภายนอกอื่น ๆ )
Marcel Korpel

138

แท็กป้ายกำกับเชื่อมโยงป้ายกำกับกับองค์ประกอบฟอร์มโดยใช้แอตทริบิวต์ "for" เบราว์เซอร์ส่วนใหญ่เปลี่ยนเป็นลิงค์ที่เปิดใช้งานองค์ประกอบฟอร์มที่เกี่ยวข้อง

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

24
ใช่น่าทึ่งที่มีเพียงไม่กี่ไซต์เท่านั้นที่ใช้สิ่งนี้ ฉันเคยเห็นไซต์ที่ใช้ js เพื่อทำสิ่งนี้ ...
Boris Callens

2
ค้นพบสิ่งนี้เมื่อไม่นานมานี้
Arnis Lapsa

4
cagdas ไม่มีคุณลักษณะที่ซ่อนอยู่ใน HTML แต่เป็นมาตรฐานที่ระบุ
เปลือกตา

54
หากต้องการขยายคำตอบเราสามารถห่ออินพุตด้วยป้ายกำกับและละเว้น for attribute: <label> Fiscal Year <input name = "iscalYear "type =" text "/> </label>
eyelidlessness

32
การใช้ช่องทำเครื่องหมายและปุ่มตัวเลือกโดยไม่ควรเป็นอาชญากรรม
Kornel

136

contenteditableคุณสมบัติสำหรับการ (IE, Firefox และ 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>

สิ่งนี้จะทำให้เซลล์สามารถแก้ไขได้! เอาเลยลองดูถ้าคุณไม่เชื่อฉัน


7
คำถามเรียกร้องให้ใช้คุณลักษณะที่ HTML5 ไม่ได้นำมาใช้
Quentin

15
David Dorward ไม่ยุติธรรมเลยที่จะบอกว่ามันถูกนำมาใช้กับ HTML5 เนื่องจาก MS ใน IE 5.5 contentEditable ได้รับการแนะนำ แต่ใช่มันยังไม่ได้รับการกำหนดมาตรฐานจนกว่า HTML5 Tyson & Steve, contentEditable ได้รับการแนะนำให้รู้จักกับ Safari ในเวอร์ชัน 2.0 แต่ยังไม่มีการเพิ่มวิธีการจัดรูปแบบที่สำคัญมากมายจนถึง 3.x; Victor H Valle ขึ้นอยู่กับประเภทของคุณ HTML 4 ควรขยายเป็น = "true" เมื่อยุบ
เปลือกตา

2
ลิงก์ try it ไม่ได้นำไปสู่ตัวอย่างที่เหมาะสม
Gordon Gustafson

4
@Binoj - ไม่อย่างแน่นอน "แอตทริบิวต์ contenteditable คือแอตทริบิวต์ที่แจกแจงซึ่งมีคีย์เวิร์ดเป็นสตริงว่างจริงและเท็จ" - w3.org/TR/html5/editing.html
Quentin

2
ยังดีกว่าให้เพิ่มสิ่งต่อไปนี้เป็น bookmarklet เพื่อให้แก้ไขหน้าเว็บที่คุณอยู่: javascript: document.body.contentEditable = 'true'; document.designMode = 'on'; void (0);
Amro

102

ฉันคิดว่าแท็ก optgroupเป็นฟีเจอร์หนึ่งที่คนไม่ได้ใช้บ่อยนัก คนส่วนใหญ่ที่ฉันพูดด้วยมักไม่รู้ว่ามีอยู่จริง

ตัวอย่าง:

<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>

น่าเสียดายที่การใช้เบราว์เซอร์ตามลำดับชั้นของเมนูทำให้เป็นที่ต้องการมาก ฉันสงสัยว่า optgroup ไม่ได้รับประโยชน์มากนักเนื่องจากกรณีการใช้งานที่เกี่ยวข้องมีน้อยและอยู่ห่างไกลกัน
เปลือกตา

1
ควรรองรับระดับหนึ่งในทุกเบราว์เซอร์ เว็บฟอรัมฉันแตกต่างจากที่อื่นตรงที่ใช้ในบางหน้าจอเพื่อแบ่งรายการฟอรัมออกเป็นส่วนเดียวกับที่ใช้ในหน้าหลัก
สถิติ

@staticsan. ฉันยอมรับว่ามันมีประโยชน์สำหรับการจัดหมวดหมู่เล็ก ๆ ของรายการจำนวนมาก
RichardOD

5
@eyelidlessness: ผมเห็นแบบเลื่อนลงตลอดเวลาว่าองค์ประกอบเยื้องหรือใช้ชนิดของ 'หัว' ---category---ข้อความเช่นบาง
แพะไม่พอใจ

4
นี่เป็นคุณสมบัติที่ฉันไม่รู้!
Chrisb

100

บิตที่ฉันชอบคือแท็กฐานซึ่งเป็นตัวช่วยชีวิตหากคุณต้องการใช้การกำหนดเส้นทางหรือการเขียน URL ใหม่ ...

สมมติว่าคุณอยู่ที่:

www.anypage.com/folder/subfolder/

ต่อไปนี้เป็นรหัสและผลลัพธ์สำหรับลิงก์จากหน้านี้

สมอปกติ:

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

นำไปสู่

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

ตอนนี้ถ้าคุณเพิ่มแท็กฐาน

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

ตอนนี้จุดยึดนำไปสู่:

www.anypage.com/test.html

48
คุณยังสามารถใช้ /images/image.png โดยใช้เครื่องหมายทับ :-)
molf

46
แท็กฐานเป็นตัวเลือกนิวเคลียร์ - เทียบเท่ากับ #define: หากคุณไม่ติดตามให้ชัดเจนสำหรับนักพัฒนาในอนาคตและทำให้เป็นส่วนที่ต่ำมากของสถาปัตยกรรมไซต์ซึ่งอาจทำให้เกิดความหงุดหงิดได้ จุดบกพร่องที่ไม่ชัดเจน ฉันไม่เคยต้องการสิ่งนี้โปรดใช้ด้วยความระมัดระวัง
annakata

2
ใช่ฉันยังเห็นว่าแท็กพื้นฐานรบกวน JavaScript ของฉันเมื่อพยายามโหลดไฟล์ CSS แบบไดนามิกลงในหน้า นอกจากนี้ข้อบกพร่องใน IE6 กำหนดให้คุณต้องปิดแท็ก (</base>) อย่างชัดเจนซึ่งไม่ถูกต้อง ความคิดเห็นตามเงื่อนไขสามารถช่วยได้
avdgaag

4
โปรดทราบว่า URL พื้นฐานถูกนำไปใช้กับ URL สัมพัทธ์ทั้งหมดไม่ใช่เฉพาะกับเส้นทาง URL ที่สัมพันธ์กัน ดังนั้นการอ้างอิง#topจะได้รับการแก้ไขเป็น "ด้านบน" ในเอกสารดัชนีรากและเป็น "ด้านบน" ในเอกสารเดียวกัน
Gumbo

17
ฉันพบว่าสิ่งนี้มีประโยชน์อย่างยิ่งในสถานการณ์ที่ฉันต้อง 'ดูแหล่งที่มา' และดาวน์โหลด HTML ของหน้าเพื่อใช้งานได้ เมื่อดาวน์โหลดแหล่งที่มาแล้วคุณสามารถเพิ่มองค์ประกอบ BASE ด้วยแอตทริบิวต์ href ที่เหมาะสม ด้วยวิธีนี้คุณสามารถทำงานในเครื่องได้หลังจากดาวน์โหลดเฉพาะ HTML ต้นทาง ... ไม่จำเป็นต้องดาวน์โหลด javascript, css และรูปภาพทั้งหมด
Andy Ford

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

onerror เป็นเหตุการณ์ JavaScript ที่จะเริ่มทำงานก่อนที่ภาพกากบาทสีแดงเล็ก ๆ (ใน IE) จะปรากฏขึ้น

คุณสามารถใช้สิ่งนี้เพื่อเขียนสคริปต์ที่จะแทนที่รูปภาพที่เสียด้วยเนื้อหาทางเลือกที่ถูกต้องเพื่อให้ผู้ใช้ไม่ต้องจัดการกับปัญหากาชาด

ในครั้งแรกที่เห็นสิ่งนี้อาจถูกมองว่าไร้ประโยชน์โดยสิ้นเชิงเพราะก่อนหน้านี้คุณไม่รู้ว่าภาพนั้นมีอยู่ตั้งแต่แรกหรือไม่? แต่ถ้าคุณพิจารณามีแอปพลิเคชันที่สมบูรณ์แบบสำหรับสิ่งนี้ ตัวอย่างเช่นสมมติว่าคุณกำลังให้บริการรูปภาพจากทรัพยากรบุคคลที่สามที่คุณไม่ได้ควบคุม เช่นเดียวกับ Gravatar ของเราที่นี่ใน SO ... มันถูกเสิร์ฟจากhttp://www.gravatar.com/ซึ่งเป็นทรัพยากรที่ทีม stackoverflow ไม่ได้ควบคุมเลย - แม้ว่ามันจะเชื่อถือได้ก็ตาม หากhttp://www.gravatar.com/หยุดทำงาน stackoverflow สามารถแก้ปัญหานี้ได้โดยใช้onerror.


อ๊า ... ถ้านี่คือสิ่งที่คิดฉันควรจะรู้ก่อนหน้านี้เมื่อฉันต้องการสิ่งนั้นอย่างแท้จริง : /
Arnis Lapsa

เพื่อชี้แจง onerror คือเหตุการณ์จาวาสคริปต์ (เช่นเดียวกับ onclick) ซึ่งช่วยให้คุณสามารถทำบางสิ่งได้เมื่อโหลดรูปภาพไม่สำเร็จ
Jehiah

1
Daniel Silveira คุณจะชี้แจงได้ไหมว่าอันที่จริงแล้วสิ่งนี้รันโค้ด onerror ในกรณีที่ภาพเสีย (เช่น 404) ไม่ว่านี่จะเป็นคุณลักษณะ DOM ไม่ใช่คุณลักษณะ HTML ตามข้อใด
เปลือกตา

2
ฉันมีเลขใช้อันนี้ชี้ไปที่ภาพที่ไม่มีระยะไกลเรียกซ้ำใคร ???
Pharabus

96

<kbd>องค์ประกอบสำหรับการทำเครื่องหมายขึ้นสำหรับการใส่แป้นพิมพ์

Ctrl+ Alt+Del


มีอะไรพิเศษเกี่ยวกับ <kbd> ข้างๆเป็นรูปแบบตัวอักษรอื่นไหม หากไม่อยู่ที่นี่คือรายการแท็กการจัดรูปแบบอื่น ๆ ? w3schools.com/tags/tag_phrase_elements.asp
เพื่อนของคุณ Ken

ไม่โดยเฉพาะอย่างยิ่งไม่เป็นที่รู้จักกันดีฉันไม่คิดว่า
Russ Cam

3
ไม่มีอะไรเป็นค่าเริ่มต้น แต่การมาร์กอัปองค์ประกอบด้วย CSS จะสะอาดกว่าเช่นวิธี SO
Agent_9191

1
ไม่ทราบว่ามีอยู่นั่นเป็นเรื่องสนุก
Kzqai

85
<blink>

ต้องใช้สำหรับสิ่งที่สำคัญบนไซต์ ไซต์ที่สำคัญที่สุดจะรวมเนื้อหาทั้งหมดไว้ในพริบตา

<marquee>

สร้างเอฟเฟกต์การเลื่อนที่สมจริงเหมาะสำหรับ e-book เป็นต้น

แก้ไข: เพื่อนที่ง่ายขึ้นนี่เป็นเพียงความพยายามในการมีอารมณ์ขัน


62
บางทีอาจจะเป็นคำถามที่ควรจะได้ระบุว่าคุณไม่ควรมีรายการที่เราต้องการที่จะยังคงซ่อน
Ben Blank

12
... ฉันเคยใช้ <blink> เป็นส่วนหนึ่งของรูปแบบ psuedo-terminal สำหรับโค้ดแสดง div (: ก่อน {content: "drthomas @ house: ~ $";}: หลัง {content: "_"; text -decoration: blink;} ... มันยอดเยี่ยมมากฉันควรขอความช่วยเหลือ =]
David บอกว่าคืนสถานะ Monica

2
<marquee> <blink> แท็ก HTML ที่น่ารำคาญที่สุดเท่าที่เคยมีมา !!! </blink> </marquee> สิ่งเหล่านี้ไม่ได้ถูกซ่อนไว้เพียง แต่ไม่ได้ใช้เพื่อเหตุผล
เพื่อนของคุณ Ken

2
ฉันห่อทั้งหน้าด้วย Marquee และ Blink เพราะฉันเจ๋งแค่นั้น
Sphvn

3
กรุณา. การใช้งานที่ถูกต้องตามกฎหมายสำหรับ <blink> คือแมวของ Schroedinger <blink> ไม่ </blink> ตาย (ฉันคิดว่านี่เป็นบน xkcd แต่ฉันหาไม่เจอในขณะนี้)
Christopher Creutzig

84

ยังไม่เป็นที่รู้จักมากนัก แต่คุณสามารถระบุlowsrcรูปภาพที่จะแสดงlowsrcขณะโหลดsrcรูปภาพได้:

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

นี่เป็นตัวเลือกที่ดีสำหรับผู้ที่ไม่ชอบภาพที่ซ้อนกัน

เรื่องเล็กน้อย: ณ จุดหนึ่งคุณสมบัตินี้มีความคลุมเครือเพียงพอที่จะใช้เพื่อหาประโยชน์จาก Hotmailประมาณปี 2000


อันนี้ฉันไม่รู้ ใช้สำหรับ "โหลด" ภาพเคลื่อนไหวได้หรือไม่?
Boris Callens

2
ฉันได้รับคำเตือนเกี่ยวกับการฉ้อโกงใน Opera จากลิงก์ "ใช้ประโยชน์จาก Hotmail" : o
jrista

2
เป็นเว็บไซต์รักษาความปลอดภัยและปลอดภัย
Joey Robert

27
แต่คุณลักษณะนี้เป็นกรรมสิทธิ์ msdn.microsoft.com/library/ms534138(VS.85).aspx
Gumbo

17
แอตทริบิวต์นี้เลิกใช้งานแล้วตั้งแต่ HTML4 - คุณไม่ควรใช้ในเว็บไซต์ที่ใช้งานจริง
Ben Hull

67

DELและINSเพื่อทำเครื่องหมายเนื้อหาที่ถูกลบและแทรก:

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

10
ใช้ไม่เพียงพอแน่นอน
เปลือกตา

2
@eyelidlessness: มีเพียงสถานการณ์ไม่เพียงพอที่การทำเครื่องหมายข้อความที่ถูกลบ / แทรกนั้นมีประโยชน์
แพะไม่พอใจ

2
ฉันสาบานได้ว่า StackOverflow ใช้<ins>และ<del>ในหน้าการแก้ไขเมื่อสักครู่กลับมา แต่ตอนนี้ใช้<span class="diff-add">และ<span class="diff-delete">. :(
ระบบหยุด

1
@DisgruntledGoat wiki revision ประวัติศาสตร์? กรณีการใช้งานมากมายสำหรับมัน
HorusKol

3
@Horus: แน่ใจว่าคุณสามารถค้นหาการใช้งานได้ แต่ในรูปแบบที่ยิ่งใหญ่ของสิ่งต่าง ๆ ที่ยังคงไม่ใช่สถานการณ์จำนวนมาก
แพะไม่พอใจ

58

ปุ่มแท็กเป็นใหม่input submitแท็กและผู้คนจำนวนมากยังคงไม่คุ้นเคยกับมัน ตัวอย่างเช่นข้อความในปุ่มสามารถจัดรูปแบบโดยใช้แท็กปุ่ม

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

จะแสดงปุ่มที่มีสองบรรทัดบรรทัดแรกระบุว่า " คลิก " เป็นตัวหนาและปุ่มที่สองระบุว่า "ฉัน!" ลองมันนี่


15
ความอัปยศเกี่ยวกับการเสียใน IE <8 เป็นไปได้ที่จะแก้ไขปัญหานี้ แต่อาจเป็นเรื่องที่เจ็บปวดและบางครั้งคุณได้รับการป้องกันความปลอดภัยที่ทำงานระหว่างเว็บเซิร์ฟเวอร์และสภาพแวดล้อมการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์
Quentin

6
แต่ IE <8 จะส่งเนื้อหาขององค์ประกอบไม่ใช่ค่าของมัน ฉันเชื่อว่าบางเวอร์ชันจะถือว่าเป็นการควบคุมที่ประสบความสำเร็จเสมอ (แม้ว่าจะไม่ได้คลิกก็ตาม)
Quentin

4
และถ้าคุณทำให้เป็น <button contenteditable> คุณก็สามารถเปลี่ยนข้อความของปุ่มได้เช่นกัน! ชี้ให้ทุกคนที่สามารถใช้งานได้อย่างถูกต้อง :)
Gavin

4
ฉันไม่เคยเข้าใจว่าเหตุใดจึงมีประเภท "input" ของการส่ง ไม่ใช่การป้อนข้อมูลใด ๆ เพียงแค่ส่งสิ่งที่คุณป้อนลงในช่องอื่น ๆ
แพะไม่พอใจ

3
@DisgruntledGoat: ชื่อ / คู่ค่าของมันจะถูกส่งไป มีประโยชน์หากคุณมีปุ่มมากกว่าหนึ่งปุ่มในฟอร์ม (เช่นแก้ไขลบย้ายขึ้น ฯลฯ ) และต้องการแยกความแตกต่างของปุ่มที่กด น่าเสียดายที่สิ่งเดียวกันนี้ใช้ไม่ได้buttonใน IE <8 มันส่งคู่ชื่อ / ค่าของbuttonองค์ประกอบทั้งหมดอย่างน่าอัศจรรย์
BalusC

56

ระบุ css สำหรับการพิมพ์

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

1
ค้นพบว่าเมื่อหลายสัปดาห์ก่อน
Daniel Moura

41
ไม่ซ่อน imo จริงๆ
Dmitri Farkov

นี่คือการใช้งานทั่วไป
UpTheCreek

หากคุณไม่เคยจัดการกับเรื่องนี้มาก่อนฉันหวังว่าคุณจะไม่เคยสร้างเว็บไซต์การผลิตใด ๆ มาก่อน ...
Kzqai

จะถือว่าสิ่งนี้ซ่อนอยู่ได้อย่างไร
มาริน

54

<dl> <dt>และ<dd>รายการที่มักจะลืมและพวกเขายืนสำหรับรายชื่อความหมายระยะนิยามและความหมาย

มันทำงานคล้ายกับรายการที่ไม่เรียงลำดับ ( <ul>) แต่แทนที่จะเป็นรายการเดียวมันเหมือนรายการคีย์ / ค่ามากกว่า

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

นอกจากนี้ความหมาย dl / dt / dd ยังเหมาะสมสำหรับรายการที่คล้ายกัน (เช่นโครงสร้างได้รับการแนะนำสำหรับการสนทนา)
เปลือกตา

2
การนำเสนอเริ่มต้นนั้นไม่ค่อยดีนัก แต่ผู้คนลืมไปว่าองค์ประกอบนั้นสามารถกำหนดสไตล์ได้หลายวิธีด้วย CSS
แพะไม่พอใจ

18
สิ่งที่น่าสนใจกว่าที่มักลืมคือรูปแบบคือคีย์ / ค่า / ค่า / ค่า / ค่า / คีย์ / ค่า
Quentin

1
@D_N ฉันคิดว่าความขัดแย้งอยู่ตรงไหนคือฉันคิดว่าการใช้ที่แนะนำนั้นเป็นส่วนหนึ่งของนิยามและความหมายแทนที่จะแยกออกจากกันและขัดแย้งกับมัน
เปลือกตา

1
@D_N และ @eyelidlessness - ตรวจสอบบันทึกของ Bruce Lawson เกี่ยวกับการทำเครื่องหมายการสนทนาอย่างมีความหมาย ... แถมคณะลูกขุนยังคงอยู่ในองค์ประกอบโต้ตอบ HTML5 ... brucelawson.co.uk/2006/…
Fenton

52

ไม่ได้ถูกซ่อนไว้อย่างแน่นอน แต่ (และนี่เป็นความผิดของ IE) มีคนไม่มากพอที่จะรู้เกี่ยวกับthead, tbody, tfootสำหรับรสนิยมของฉัน และมีกี่คนที่รู้ว่า tfoot ควรจะปรากฏเหนือ tbody ในมาร์กอัป?


1
boris callens ใช่ tbody บอกเป็นนัยว่าไม่มี thead, tbody และ tfoot อยู่
เปลือกตา

2
หาก IE5 ใช้ TBODY อย่างถูกต้องก็จะมีคนใช้งานมากขึ้น นี่เป็นปัญหาหลักเมื่อหลายปีก่อน Mozilla และ Opera รองรับการเลื่อน TBODY ซึ่งเจ๋งมาก น่าเสียดายที่ IE5 ไม่ได้
staticsan

9
มีประโยชน์สำหรับการพิมพ์เนื่องจากควรวางtheadและtfootไว้ที่ด้านบนและด้านล่างของแต่ละหน้า เป็นเรื่องน่าเสียดายที่ไม่มีกลไกtheadในการทำซ้ำในเบราว์เซอร์เมื่อคุณมีโต๊ะยาว ๆ
แพะไม่พอใจ

1
ฉันรู้ว่า tfoot ไปอยู่เหนือร่างกายและฉันคิดว่ามันค่อนข้างโง่ ฉันวาง tfoot ของฉันไว้ด้านล่างซึ่งมันสมเหตุสมผลมีข้อผิดพลาดของตัวตรวจสอบความถูกต้องย้าย tfoot ไปไว้เหนือ tbody (สับสน แต่สอดคล้องกันเสมอ) และเดาอะไร! เมื่อคุณพยายามเน้นตารางเบราว์เซอร์ (อย่างน้อย FF) จะไฮไลต์เท้าก่อนร่างกายแม้ว่าจะมองเห็นด้านล่างของร่างกายก็ตาม! แล้ว !!! เมื่อคุณคัดลอกไปยังโปรแกรมแก้ไขข้อความจะอยู่เหนือร่างกายด้วยสายตา การปกครองโดยพลการโดยสิ้นเชิง
Anthony

3
@Anthony: เหมาะสมหากคุณมีการเชื่อมต่อที่ช้าหมายความว่าคุณสามารถดูส่วนหัวและส่วนท้ายทั้งหมดได้ในขณะที่เนื้อหาตารางยังคงโหลดอยู่
me_and

50

wbrหรือคำแบ่งแท็ก จาก Quirksmode:

(ตัวแบ่งคำ) หมายถึง: "เบราว์เซอร์อาจแทรกตัวแบ่งบรรทัดไว้ที่นี่หากต้องการ" เบราว์เซอร์ไม่คิดว่าการแบ่งบรรทัดจะไม่มีอะไรเกิดขึ้น

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

ฉันให้ตัวเลือกเบราว์เซอร์ในการเพิ่มตัวแบ่งบรรทัด สิ่งนี้ไม่จำเป็นสำหรับความละเอียดที่ใหญ่มากเมื่อโต๊ะมีพื้นที่เหลือเฟือ อย่างไรก็ตามสำหรับความละเอียดที่เล็กกว่าการแบ่งบรรทัดที่วางไว้อย่างมีกลยุทธ์จะป้องกันไม่ให้ตารางขยายใหญ่กว่าหน้าต่างและทำให้แถบเลื่อนแนวนอน

นอกจากนี้ยังมี&shy;เอนทิตี HTML ที่กล่าวถึงในหน้าเดียวกัน สิ่งนี้เหมือนกับwbrแต่เมื่อใส่ตัวแบ่งจะมีการเพิ่มขีดกลาง ( -) เพื่อแสดงถึงการหยุดพัก คล้ายกับวิธีการพิมพ์

ตัวอย่าง:

ข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความ


2
โปรดใช้ความระมัดระวังเนื่องจากมีการรองรับเบราว์เซอร์ที่ไม่ดีในตัวนี้
Christophe Eblé

7
"IE8 เป็น IE8" ไม่รองรับและเป็นบั๊กกี้ใน Safari 3.0 สำหรับ windows นอกเหนือจากการสนับสนุนนั้นค่อนข้างดี ดูแผนภูมิความเข้ากันได้ในลิงค์
aleemb

อืมการอ้างอิง sitepoint ทำเครื่องหมายแท็กนี้ว่าเลิกใช้งานแล้วและไม่มีประโยชน์ใครถูก reference.sitepoint.com/html/wbr
Christophe Eblé

อาจเลิกใช้เป็นส่วนหนึ่งของข้อมูลจำเพาะ HTML แต่ยังคงใช้งานได้ในเบราว์เซอร์ เมื่อใดก็ตามที่มีข้อสงสัยให้ใช้คำตัดสินของ QuirksMode (ตารางความเข้ากันได้ที่สนับสนุนโดย Google แล้ว)
aleemb

ดูเหมือนว่านี่จะเป็นประโยชน์มากที่จะรวมไว้ในมาตรฐาน css ถัดไป!
เจมส์

43

คุณลักษณะที่ใช้น้อยมากคือความจริงที่ว่าทุกองค์ประกอบที่ให้เนื้อหาที่มองเห็นได้บนหน้าเว็บสามารถมีแอตทริบิวต์ "title" ได้

การเพิ่มแอตทริบิวต์ดังกล่าวจะทำให้ 'คำแนะนำเครื่องมือ' ปรากฏขึ้นเมื่อเมาส์ถูก 'วางเมาส์เหนือองค์ประกอบ' และสามารถใช้เพื่อให้ข้อมูลที่ไม่จำเป็น แต่มีประโยชน์ในลักษณะที่ไม่ทำให้หน้าเว็บแออัดเกินไป . (หรืออาจเป็นวิธีการเพิ่มข้อมูลไปยังหน้าที่มีคนอยู่แล้ว)


ใช่แอตทริบิวต์ "title" มีประโยชน์มากโดยเฉพาะอย่างยิ่งสำหรับองค์ประกอบที่ต้องการให้คลิก
Steve Harrison

6
คำแนะนำเครื่องมือที่ปรากฏขึ้นเฉพาะเบราว์เซอร์ ไม่ใช่ทุกเบราว์เซอร์ที่จะแสดงแอตทริบิวต์ title เหมือนกัน แต่เป็นคุณสมบัติที่ดีที่ฉันใช้อย่างแน่นอน
Travis

8
แอตทริบิวต์ title มีประโยชน์ แต่เมื่อใช้อย่างเหมาะสมเท่านั้น เบราว์เซอร์ส่วนใหญ่แสดงคำแนะนำเครื่องมือเพียงไม่กี่วินาทีก่อนที่จะหายไป ฉันเกลียดมันเมื่อนักออกแบบรู้สึกว่าจำเป็นต้องเติมแอตทริบิวต์ชื่อเรื่องด้วยข้อความ 3 หรือ 4 บรรทัดซึ่งทำให้คุณต้องวางเมาส์เหนือแล้ววางเมาส์อีกครั้งเพื่ออ่านส่วนที่เหลือ
นักบวช

การใช้สิ่งนี้ร่วมกับ jQuery เท่ากับความยอดเยี่ยม
Levi Morrison

Levi - คุณช่วยยกตัวอย่างได้ไหม?
belugabob

38

การนำคลาส html / css หลายรายการไปใช้กับแท็กเดียว โพสต์เดียวกันที่นี่

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

22
นี่คือคลาส HTML ไม่ใช่คลาส CSS CSS ไม่มีคลาส (มีตัวเลือกคลาส) คลาส HTML มีประโยชน์สำหรับสิ่งอื่นที่ไม่ใช่ CSS
Quentin

36
ว้าว! ฉันไม่สามารถเข้าใจความจริงที่ว่าผู้คนพบว่าสิ่งนี้เป็นคุณลักษณะ "ซ่อน" ฉันรู้สึกงี่เง่าไหมที่โพสต์ฟีเจอร์ที่ "ซ่อนอยู่จริงๆ" เพราะคนที่โหวตเรื่องนี้อาจจะไม่ได้เข้าใจถึงความหมายของ DTD
aleemb

5
d03boy, p.foo, p.var ไม่เหมือนกับ p.foo.bar ก่อนหน้านี้เลือกย่อหน้าที่มีคลาส "foo" หรือ "var" ส่วนหลังเลือกย่อหน้าที่มีทั้งสองคลาส
หนังตาตก

5
สิ่งที่เกี่ยวกับคลาส HTML เป็นจุดที่ดีเพราะมันทำให้ฉันเข้าสู่ point- html ไม่ควรตระหนักถึง css .. คุณ 'ควร' สามารถสร้าง html และส่งต่อไปยังนักออกแบบที่สามารถใช้การออกแบบของพวกเขาได้โดยไม่ต้อง จำเป็นต้องเปลี่ยน html (ยังไม่เป็นเช่นนั้น;)) .. ดังนั้นสิ่งนี้จึงมาถึงการตั้งชื่อและวิธีการใช้คลาสของคุณ .. อย่าสร้างคลาสเพื่อกำหนดเป้าหมายคุณสมบัติ css .. ใช้คลาสเพื่อระบุว่าองค์ประกอบคืออะไร '.
meandmycode

1
ในทางเทคนิค "Foo Bar blackg" เป็นคลาสเดียวและ p.foo เป็นเพียงน้ำตาลที่ใช้ในการสังเคราะห์สำหรับ p [class ~ = foo] (ดูข้อมูลจำเพาะ ) มันง่ายกว่าที่จะคิดว่ามันมีหลายชั้นเรียน
Tgr

34

เราทุกคนรู้เกี่ยวกับ DTD หรือการประกาศประเภทเอกสาร (สิ่งเหล่านี้ทำให้เพจของคุณล้มเหลวด้วยตัวตรวจสอบ W3C) อย่างไรก็ตามเป็นไปได้ที่จะขยายDTD s โดยการประกาศรายการแอตทริบิวต์สำหรับองค์ประกอบที่กำหนดเอง

ตัวอย่างเช่นตัวตรวจสอบ W3C จะล้มเหลวสำหรับหน้านี้เนื่องจากมีการ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>
]>

ดูเพิ่มเติมได้ที่เกี่ยวกับDTDs กำหนดเองที่ quirksmode


10
แน่นอนว่าสิ่งนี้ทำให้ "ถูกต้อง: ภาษามาร์กอัปที่คุณกำหนดเอง" ไม่ใช่ "XHTML 1.0 Transitional"
Quentin

3
+1. ฉันไม่รู้ว่าทำไมถึงเป็น -1 อย่างไรก็ตามควรสังเกตว่าการรองรับเบราว์เซอร์นั้นไม่มีประโยชน์มากนัก
เปลือกตา

ค่อนข้างแน่ใจว่า Opera รองรับสิ่งนี้
Rich Bradshaw

2
@eyelidness ใช้ได้เฉพาะใน XHTML ไม่ทำงานใน XHTML ที่ทำให้เชื่อว่าส่งเป็นข้อความ / HTML
Kornel

2
Eesh ไม่ใช่แฟนเรื่องนี้ สำหรับฉันแล้วคุณค่าของ HTML คือทุกคนบนโลกนี้รู้ว่ามันหมายถึงอะไร (ไม่มากก็น้อย) เพราะเราทุกคนใช้แท็กและแอตทริบิวต์เดียวกัน ฉันไม่แน่ใจว่าทำไมclassแอตทริบิวต์ถึงไม่สามารถขยายได้เพียงพอ
Paul D. Waite

28

เราสามารถกำหนดสตริงที่เข้ารหัส 64 ฐานเป็นแอตทริบิวต์ source / href ของรูปภาพ, JavaScript, iframe, link

เช่น

<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>

อ้างอิง

ฉันจะสร้างรูปภาพโดยใช้มาร์กอัป HTML ได้อย่างไร

ไฟล์ไบนารีเป็นตัวเข้ารหัส / ตัวแปล Base64


4
น่าเสียดายที่ IE <8 ไม่รองรับสิ่งนี้ อย่างไรก็ตามคุณสามารถใช้ MHTML แทนสำหรับเบราว์เซอร์เหล่านี้: phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under
Mathias Bynens

26

ฉันเพิ่งค้นพบเกี่ยวกับชุดฟิลด์และแท็กป้ายกำกับ ข้างต้นไม่ซ่อน แต่มีประโยชน์สำหรับแบบฟอร์ม

คำอธิบาย <fieldset>

ตัวอย่าง:

<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>

โปรดให้ตัวอย่างการใช้งานนี้
Binoj Antony


ค้นพบ fieldset จากหน้าตัวอย่าง aspnet mvc ^^
Arnis Lapsa

2
ไม่ทราบเกี่ยวกับเรื่องนี้ นี่คือของ W3C ข้อมูลจำเพาะ: w3.org/TR/html401/interact/forms.html#h-17.10
MitMaro

ฟิลด์และตำนานนั้นยอดเยี่ยมมาก วิธีที่ดีมากในการมาร์กอัปแบบฟอร์มของคุณ
Neil Aitken

25

คุณสามารถใช้objectแท็กแทนiframeเพื่อรวมเอกสารอื่นในหน้า:

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

57
ซึ่งจะทำงานได้เกือบจะเหมือนกับ iframe ยกเว้นว่าจะได้รับการสนับสนุนน้อยกว่าและมีคุณสมบัติน้อยกว่า
Quentin

iframe เลิกใช้แล้วหวังว่าเราจะได้รับการสนับสนุนที่ดีขึ้นเร็ว ๆ นี้
Gordon Gustafson

12
iframe ไม่เลิกใช้ใน HTML 5
Zach

มันป้องกันการโจมตี XSS จากเพจฝังตัวหรือไม่?
คนขี้ขลาดนิรนาม

1
ฉันเชื่อว่ามันใช้ SOP เช่นเดียวกับ iframe
Zach

25

<optgroup>เป็นสิ่งที่ยอดเยี่ยมที่ผู้คนมักจะพลาดเมื่อทำ<select>รายการแบบ แบ่งกลุ่ม

<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>

คือสิ่งที่คุณควรใช้แทน

<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

ส่วนใหญ่ยังไม่ทราบว่าคุณสามารถแยกแยะปุ่มแบบฟอร์มที่กดได้โดยเพียงแค่ตั้งชื่อ / คู่ค่า เช่น

<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>

ในฝั่งเซิร์ฟเวอร์ปุ่มจริงที่กดสามารถรับได้โดยเพียงแค่ตรวจสอบการมีอยู่ของพารามิเตอร์คำขอที่เกี่ยวข้องกับชื่อปุ่ม หากไม่เป็นnullเช่นนั้นแสดงว่ากดปุ่มแล้ว

ผมเคยเห็นมากของที่ไม่จำเป็น JS แฮ็ก / การแก้ปัญหาสำหรับที่เช่นการเปลี่ยนแปลงการดำเนินการรูปแบบหรือเปลี่ยนค่าการป้อนข้อมูลที่ซ่อนอยู่ก่อนขึ้นอยู่กับการกดปุ่ม มันน่าประหลาดใจมาก

นอกจากนี้ฉันเคยเห็นการแฮ็ก JS / วิธีแก้ปัญหาเกือบทั้งหมดเพื่อรวบรวมช่องทำเครื่องหมายหลายช่องเช่นในแถวตาราง ในการเลือก / ตรวจสอบทุกแถวของตาราง JS จะเพิ่มดัชนีแถวให้กับค่าที่คั่นด้วยเครื่องหมายจุลภาคในองค์ประกอบอินพุตที่ซ่อนอยู่ซึ่งจะถูกแยก / แยกวิเคราะห์เพิ่มเติมในฝั่งเซิร์ฟเวอร์ นั่นเป็นผลมาจากความไม่ทราบว่าคุณสามารถให้องค์ประกอบอินพุตหลายรายการในชื่อเดียวกันแต่เป็นค่าที่แตกต่างกันและคุณยังสามารถเข้าถึงได้เป็นอาร์เรย์ในฝั่งเซิร์ฟเวอร์ เช่น

<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>
...

การไม่ทราบจะทำให้ช่องทำเครื่องหมายแต่ละช่องมีชื่อต่างกันและละเว้นแอตทริบิวต์ค่าทั้งหมด ในบางสถานการณ์ที่ไม่ต้องใช้ JS-hack / วิธีแก้ปัญหาฉันได้เห็นเวทมนตร์ที่ครอบงำโดยไม่จำเป็นในโค้ดฝั่งเซิร์ฟเวอร์เพื่อแยกแยะรายการที่เลือก


1
เฮ้ .. นั่นเป็นอีกหนึ่งคุณลักษณะที่ซ่อนอยู่ของ HTML: /;)
BalusC

1
หากแบบฟอร์มมีปุ่มส่งหลายปุ่มและผู้ใช้คลิกปุ่มเดียว Internet Explorer บางเวอร์ชันจะบอกเซิร์ฟเวอร์ของคุณอย่างร่าเริงว่ามีการคลิกทั้งหมด ยอดเยี่ยม.
detly

1
@detly: ถ้าคุณใช้<button type="submit">แทน<input type="submit">:)
BalusC

1
... buuuuut IE6 ไม่มีปัญหาด้วย<input type="submit">เหรอ? (หน่วยความจำของฉันเกี่ยวกับปัญหานี้มืดมน - ฉันเชื่อมั่นมานานแล้วว่านายจ้างไม่ต้องกังวลเกี่ยวกับความเข้ากันได้ของ IE สำหรับเว็บแอปภายในดังนั้นจึงไม่ใช่ปัญหาของฉันอีกต่อไป แต่ดูเหมือนว่าฉันจะจำอุปสรรคบางอย่างในการทำให้ปัญหานี้แก้ไขได้ใน IE6 )
detly

2
นั่นไม่เป็นมิตรกับ i18n มากนัก
zneak

22

แท็ก COLGROUP

<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
จากประสบการณ์ของฉันการสนับสนุนกลุ่มร่วมเป็นสิ่งที่ดีที่สุด
เปลือกตา

ที่คล้ายกันมากคือ WPF Grid
Binoj Antony

18

หากไม่ได้ระบุforแอตทริบิวต์ของ<label>แท็กแท็กนั้นจะถูกกำหนดโดยปริยายเป็นลูกคนแรก<input>เช่น

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

เทียบเท่ากับ

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

4
แต่สิ่งนี้มีการสนับสนุนเบราว์เซอร์น้อยกว่าสำหรับแอตทริบิวต์
Quentin

4
@ เดวิด - คุณมีเอกสารที่จะสำรองข้อมูลหรือไม่? ฉันไม่คิดว่าฉันเคยเห็นเบราว์เซอร์ไม่รองรับการใช้งานนี้ ฉันได้ทดสอบเป็นการส่วนตัวใน IE6 / 7, FF2 / 3, Safari 3 และ Chrome 1/2 ฉันยังไม่ได้ทดสอบตัวเองใน Opera แต่ฉันจะแปลกใจมากถ้ามันไม่ได้ผล พฤติกรรมนี้เป็นส่วนหนึ่งของข้อกำหนด HTML 4.0 ดั้งเดิมซึ่งเผยแพร่ครั้งแรกเมื่อกว่า 11 ปีที่แล้ว: w3.org/TR/1998/REC-html40-19980424/interact/forms.html#adef-for
Ben Blank

นอกจากนี้ยังไม่สามารถใส่อินพุตภายในป้ายกำกับได้และ DOH คุณไม่ได้ปิดแท็กอินพุตของคุณในทั้งสองตัวอย่าง!
Anthony

5
คุณคิดผิดในการนับทั้งสอง: นี่เป็นแนวทางปฏิบัติที่ถูกต้องและแท็กปิดท้ายไม่ได้รับอนุญาตให้ใช้องค์ประกอบอินพุต
หมู่

15

ปุ่มเป็นลิงค์ไม่มี JavaScript :

คุณสามารถใส่ไฟล์ประเภทใดก็ได้ในการดำเนินการแบบฟอร์มและคุณมีปุ่มที่ทำหน้าที่เป็นลิงก์ ไม่จำเป็นต้องใช้เหตุการณ์ onclick หรือเช่นนั้น คุณยังสามารถเปิดไฟล์ในหน้าต่างใหม่ได้ด้วยการติด "เป้าหมาย" ในแบบฟอร์ม ฉันไม่เห็นเทคนิคนั้นในการใช้งานมากนัก

แทนที่สิ่งนี้

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

ด้วยสิ่งนี้:

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

27
ปุ่มจะไม่มีตัวเลือก "บันทึกไฟล์เป็น" ซึ่งอาจจำเป็นสำหรับผู้ใช้ที่ไม่ชอบให้ Adobe Acrobat เข้ายึดเบราว์เซอร์ของตน
Kornel

มันจะทำงานตามพฤติกรรมเบราว์เซอร์เริ่มต้นเมื่อเข้าถึงไฟล์ PDF อาจเป็นไฟล์ HTML ไฟล์ word ไฟล์ zip หรืออะไรก็ได้ที่คุณต้องการ
Wadih M.

Anchor tag ต้องการเหตุการณ์ onclick ในสถานการณ์ใด แล้วทำไม html 3 บรรทัดถึงดีกว่า 1? เป็นความคิดที่ว่าคุณสามารถมีปุ่มแทนลิงก์ได้หรือไม่ดังนั้นจึงเป็นสิ่งที่ดีและปุ่มเป็นอย่างไร แม้ว่าฉันจะฟังดูบ้าๆบอ ๆ เกี่ยวกับเรื่องนี้ แต่จริงๆแล้วฉันมีหน้าที่ใช้ปุ่มแทนลิงก์เนื่องจากไฟล์ถูกสร้างขึ้นแบบไดนามิกเมื่อผู้ใช้ร้องขอดังนั้นฉันจึงไม่ต้องการลิงก์ไปที่: blah.php? stuff = "userdata" แม้ว่าฉันจะไปเส้นทางนั้นได้ แต่ฉันก็ไม่อยากเสี่ยงกับชื่อไฟล์ที่มีสคริปต์สร้างไฟล์เป็นชื่อแทนที่จะเป็นชื่อไฟล์ที่สคริปต์ให้ไฟล์
Anthony

1
ทำไมไม่จัดสไตล์แท็ก <a> ให้เหมือนปุ่ม ดูเหมือนว่าจะมีขยะจำนวนมากในมาร์กอัปของคุณ
UpTheCreek

2
@UpTheCreek บางเว็บแอปพลิเคชันต้องการให้มีลักษณะเหมือนกับระบบปฏิบัติการ เช่นปุ่มที่น่าเกลียดเมื่อผู้ใช้ใช้ Windows และปุ่มที่สวยงามเมื่อผู้ใช้ใช้ Mac OS X

13

วิธีที่ง่ายที่สุดในการรีเฟรชหน้าใน X วินาที - META Refresh

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

ค่าในเนื้อหาหมายถึงวินาทีหลังจากนั้นคุณต้องการให้รีเฟรชเพจ
[แก้ไข]

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

ทำการเปลี่ยนเส้นทางง่ายๆ!
(ขอบคุณ @rlb)


13
แน่นอนว่าการหาองค์ประกอบที่ต้องการการรีเฟรชแล้วอัปเดตผ่าน AJAX จะทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีกว่ามาก ...
Steve Harrison

11
การรีเฟรช META ไม่ได้ทำอะไรได้ดีนักในหน้าที่มีกิจกรรมแบบฟอร์มผู้ใช้จำนวนมากเช่นกันเพราะอาจขัดขวางการกรอกแบบฟอร์มของผู้ใช้และทิ้งงานทั้งหมดได้ ฉันคิดว่าไม่ค่อยมีโอกาสที่การรีเฟรชแบบนี้จะดีที่สุด เป็นเพียงวิธีง่ายๆในการออกตามปกติ
Robert Koritnik

11
/ me เกลียดหน้าที่รีเฟรชแบบนั้น ... ควรแบน = /
Svish

3
นอกจากนี้ยังมีประโยชน์หากตั้งค่าให้น้อยกว่าระยะหมดเวลาเซสชันเล็กน้อยเพื่อแจ้งให้ผู้ใช้ทราบว่าเซสชันของเขาหมดเวลาและถูกลบออก
fforw

1
หมดเวลาสั้น ๆ ทำลายปุ่มย้อนกลับ
Kornel

12

<html>, <head>และ<body>แท็กเป็นตัวเลือก หากคุณละเว้นพวกเขาจะถูกแทรกโดยเงียบโดยโปรแกรมแยกวิเคราะห์ในตำแหน่งที่เหมาะสม มันเป็นเรื่องที่ถูกต้องสมบูรณ์ที่จะทำในรูปแบบ HTML (เช่นเดียวกับนัย<tbody>)

HTML ในทางทฤษฎีคือแอปพลิเคชัน SGML นี่อาจเป็นเอกสาร HTML 4 ที่สั้นที่สุดที่ถูกต้อง :

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

ข้างต้นใช้ไม่ได้ทุกที่ยกเว้น W3C Validator อย่างไรก็ตามtext/htmlเอกสารHTML5 ที่สั้นที่สุดสามารถใช้ได้ทุกที่:

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

4
คุณควรระมัดระวังสิ่งที่คุณโฆษณา โค้ดด้านบนจะผ่านการตรวจสอบความถูกต้องพร้อมคำเตือน 4 คำที่ตัวตรวจสอบ w3c แต่ DocType คือ HTML 4.0 ค่อนข้างเรียบร้อยที่ HTML 4 หลอกลวง SGML ดังนั้นจึงรักษามาตรฐานการตรวจสอบความถูกต้องแบบหลวม ๆ นี้ไว้ แต่ถ้าคุณเปลี่ยน DTD นั้นเป็น XHTML 1.0 STRICT จะได้รับข้อผิดพลาด 15 ข้อซึ่งเกือบเท่ากับจำนวนอักขระ XHTML ได้รับการพัฒนาเนื่องจาก HTML ขี้เกียจ (และไม่ปลอดภัย) ดังนั้นเราจึงไม่ต้องการใช้ประโยชน์จากสิ่งนั้นอีกต่อไป
Anthony

3
หากคุณเปลี่ยน DOCTYPE ของเอกสาร HTML / SGML เป็น XHTML / XML คุณจะได้รับการผสมผสานที่ไร้สาระ มันค่อนข้างชัดเจนและฉันไม่แน่ใจว่าทำไมคุณถึงชี้เรื่องนั้น
Kornel

3
ในทางเทคนิคแล้วตัวอย่างนี้อาจเป็น HTML 4 ที่ถูกต้อง แต่เบราว์เซอร์ไม่รองรับไวยากรณ์ SGML แบบย่อ ต่อไปนี้เป็นเอกสาร HTML 5 ที่สั้นที่สุดที่ถูกต้องที่สุดซึ่งเบราว์เซอร์รองรับจริง:<!DOCTYPE html><title></title>
Brian Campbell

มีความคิดอย่างไรที่จะออกhead/ bodyไม่ใช่แค่จากมุมมองการตรวจสอบความถูกต้อง?
kibibu

@kibibu: เบราว์เซอร์ไม่มีปัญหากับสิ่งนี้ Opera เวอร์ชันเก่าเคยละเว้น<head>ใน DOM บางครั้ง แต่เนื้อหาส่วนหัวอยู่ใน DOM และใช้งานได้ ปัญหาใหญ่ที่สุดที่ฉันพบคือไคลเอนต์ OpenID จำเป็นต้อง<head>แสดงอย่างชัดเจน
Kornel

11

langแอตทริบิวต์ไม่ได้เป็นที่รู้จักกันเป็นอย่างดี แต่มีประโยชน์มาก แอตทริบิวต์นี้ใช้เพื่อระบุภาษาของเนื้อหาในเอกสารทั้งหมดหรือในองค์ประกอบเดียว รหัส Langage มีให้ในรหัสภาษา ISO 2 ตัวอักษร (เช่น 'en' สำหรับภาษาอังกฤษ 'fr' สำหรับภาษาฝรั่งเศส)

เป็นประโยชน์สำหรับเบราว์เซอร์ที่สามารถปรับการแสดงเครื่องหมายคำพูด ฯลฯ โปรแกรมอ่านหน้าจอยังได้รับประโยชน์จากlang แอตทริบิวต์เช่นเดียวกับเครื่องมือค้นหา

Sitepoint มีคำอธิบายที่ดีเกี่ยวกับlangแอตทริบิวต์

ตัวอย่าง

ระบุภาษาที่จะเป็นภาษาอังกฤษสำหรับทั้งเอกสารเว้นแต่จะถูกแทนที่โดยlangแอตทริบิวต์อื่นในระดับที่ต่ำกว่าใน DOM

<html lang="en">

ระบุภาษาในย่อหน้าต่อไปนี้เป็นภาษาสวีเดน

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

10

"! DOCTYPE" ประกาศ อย่าคิดว่าเป็นคุณสมบัติที่ซ่อนอยู่ แต่ดูเหมือนว่าจะไม่เป็นที่รู้จัก แต่มีประโยชน์มาก

เช่น

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

10
และไม่ต้องพูดถึง "บังคับสำหรับภาษามาร์กอัปส่วนใหญ่ในปัจจุบันและหากไม่มีภาษาใดภาษาหนึ่งจะเป็นไปไม่ได้ที่จะตรวจสอบความถูกต้องของเอกสาร" ... validator.w3.org/docs/help.html#faq-doctype
Svish

ฉันไม่คิดว่านี่คือ "ไม่เป็นที่รู้จัก" อีกต่อไป ในช่วงเวลาระหว่าง IE 6 และ IE 7 การใช้งานประเภทหลักจาก ~ 1% เป็น> 50%
หนังตาตก

@eyelidlessness IDE ส่วนใหญ่มีแท็กนี้ด้วยเหตุนี้การใช้จึงเพิ่มขึ้น ฉันคิดว่าแท็กนี้ไม่เป็นที่รู้จักกันดี
Daniel Moura

6
และการใช้ประเภทหลักที่เข้มงวดจะช่วยแก้ไขความไม่สอดคล้องกันของเบราว์เซอร์ได้ 95%
แพะไม่พอใจ

3
ส่วนหนึ่งของมาตรฐานและถูกใช้โดย 99% ของนักพัฒนาที่นั่นไม่ได้ดูเหมือน "คุณลักษณะที่ซ่อนอยู่"
WhyNotHugo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.