HTML - เฟรม

เฟรม HTML ใช้เพื่อแบ่งหน้าต่างเบราว์เซอร์ของคุณออกเป็นหลายส่วนโดยแต่ละส่วนสามารถโหลดเอกสาร HTML แยกกันได้ คอลเลกชันของเฟรมในหน้าต่างเบราว์เซอร์เรียกว่าเฟรมเซ็ต หน้าต่างจะแบ่งออกเป็นเฟรมในลักษณะเดียวกันกับการจัดระเบียบตาราง: เป็นแถวและคอลัมน์

ข้อเสียของเฟรม

มีข้อเสียเล็กน้อยในการใช้เฟรมดังนั้นจึงไม่แนะนำให้ใช้เฟรมในหน้าเว็บของคุณ -

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

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

  • ปุ่มย้อนกลับของเบราว์เซอร์อาจไม่ทำงานตามที่ผู้ใช้คาดหวัง

  • ยังมีเบราว์เซอร์จำนวนน้อยที่ไม่รองรับเทคโนโลยีเฟรม

การสร้างเฟรม

ในการใช้เฟรมบนเพจเราใช้แท็ก <frameset> แทนแท็ก <body> แท็ก <frameset> กำหนดวิธีแบ่งหน้าต่างออกเป็นเฟรม rows แอตทริบิวต์ของแท็ก <frameset> กำหนดเฟรมแนวนอนและ colsแอตทริบิวต์กำหนดกรอบแนวตั้ง แต่ละเฟรมจะระบุด้วยแท็ก <frame> และกำหนดว่าเอกสาร HTML ใดที่จะเปิดเข้าไปในเฟรม

Note- แท็ก <frame> เลิกใช้งานใน HTML5 ห้ามใช้องค์ประกอบนี้

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างการสร้างเฟรมแนวนอนสามเฟรม -

<!DOCTYPE html>
<html>

   <head>
      <title>HTML Frames</title>
   </head>
	
   <frameset rows = "10%,80%,10%">
      <frame name = "top" src = "/html/top_frame.htm" />
      <frame name = "main" src = "/html/main_frame.htm" />
      <frame name = "bottom" src = "/html/bottom_frame.htm" />
   
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
      
   </frameset>
   
</html>

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

ตัวอย่าง

ลองใส่ตัวอย่างข้างต้นดังนี้เราแทนที่แอตทริบิวต์แถวด้วย cols และเปลี่ยนความกว้าง สิ่งนี้จะสร้างทั้งสามเฟรมในแนวตั้ง -

<!DOCTYPE html>
<html>
   
   <head>
      <title>HTML Frames</title>
   </head>
   
   <frameset cols = "25%,50%,25%">
      <frame name = "left" src = "/html/top_frame.htm" />
      <frame name = "center" src = "/html/main_frame.htm" />
      <frame name = "right" src = "/html/bottom_frame.htm" />
      
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
   </frameset>
   
</html>

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

แอตทริบิวต์แท็ก <frameset>

ต่อไปนี้เป็นคุณสมบัติที่สำคัญของแท็ก <frameset> -

ซีเนียร์ No คุณสมบัติและคำอธิบาย
1

cols

ระบุจำนวนคอลัมน์ที่มีอยู่ในชุดเฟรมและขนาดของแต่ละคอลัมน์ คุณสามารถระบุความกว้างของแต่ละคอลัมน์ได้หนึ่งในสี่วิธี -

ค่าสัมบูรณ์เป็นพิกเซล ตัวอย่างเช่นการสร้างสามกรอบแนวตั้งใช้cols = "100, 500, 100"

เปอร์เซ็นต์ของหน้าต่างเบราว์เซอร์ ตัวอย่างเช่นการสร้างสามกรอบแนวตั้งใช้cols = "10%, 80%, 10%"

ใช้สัญลักษณ์ตัวแทน ตัวอย่างเช่นการสร้างสามกรอบแนวตั้งใช้cols = "10% * 10%" ในกรณีนี้สัญลักษณ์แทนจะใช้เวลาที่เหลือของหน้าต่าง

ตามความกว้างสัมพัทธ์ของหน้าต่างเบราว์เซอร์ ตัวอย่างเช่นการสร้างสามกรอบแนวตั้งใช้cols = "3 * 2 * 1 *" นี่เป็นอีกทางเลือกหนึ่งของเปอร์เซ็นต์ คุณสามารถใช้ความกว้างสัมพัทธ์ของหน้าต่างเบราว์เซอร์ ที่นี่หน้าต่างแบ่งออกเป็นหก: คอลัมน์แรกใช้เวลาครึ่งหนึ่งของหน้าต่างคอลัมน์ที่สองใช้เวลาหนึ่งในสามและที่สามใช้หนึ่งในหก

2

rows

แอตทริบิวต์นี้ทำงานเหมือนกับแอตทริบิวต์ cols และรับค่าเดียวกัน แต่ใช้เพื่อระบุแถวใน frameset ยกตัวอย่างเช่นการสร้างสองเฟรมแนวนอนใช้แถว = "10%, 90%" คุณสามารถระบุความสูงของแต่ละแถวในลักษณะเดียวกับที่อธิบายไว้ข้างต้นสำหรับคอลัมน์

3

border

แอตทริบิวต์นี้ระบุความกว้างของเส้นขอบของแต่ละเฟรมเป็นพิกเซล ตัวอย่างเช่น border = "5" ค่าศูนย์หมายถึงไม่มีเส้นขอบ

4

frameborder

แอตทริบิวต์นี้ระบุว่าควรแสดงเส้นขอบสามมิติระหว่างเฟรมหรือไม่ แอตทริบิวต์นี้รับค่า 1 (ใช่) หรือ 0 (ไม่ใช่) ตัวอย่างเช่น frameborder = "0" ระบุว่าไม่มีเส้นขอบ

5

framespacing

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

แอตทริบิวต์แท็ก <frame>

ต่อไปนี้เป็นคุณสมบัติที่สำคัญของแท็ก <frame> -

ซีเนียร์ No คุณสมบัติและคำอธิบาย
1

src

แอ็ตทริบิวต์นี้ใช้เพื่อตั้งชื่อไฟล์ที่ควรโหลดในเฟรม ค่าของมันสามารถเป็น URL ใดก็ได้ ตัวอย่างเช่น src = "/html/top_frame.htm" จะโหลดไฟล์ HTML ที่มีอยู่ในไดเรกทอรี html

2

name

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

3

frameborder

แอ็ตทริบิวต์นี้ระบุว่าจะแสดงเส้นขอบของเฟรมนั้นหรือไม่ มันจะแทนที่ค่าที่กำหนดในแอตทริบิวต์ frameborder บนแท็ก <frameset> หากมีการกำหนดค่านี้และสามารถรับค่าได้ทั้ง 1 (ใช่) หรือ 0 (ไม่ใช่)

4

marginwidth

แอตทริบิวต์นี้ช่วยให้คุณสามารถระบุความกว้างของช่องว่างระหว่างด้านซ้ายและขวาของเส้นขอบของเฟรมและเนื้อหาของเฟรม ค่านี้กำหนดเป็นพิกเซล ตัวอย่างเช่น marginwidth = "10"

5

marginheight

แอตทริบิวต์นี้ช่วยให้คุณระบุความสูงของช่องว่างระหว่างด้านบนและด้านล่างของเส้นขอบและเนื้อหาของเฟรม ค่านี้กำหนดเป็นพิกเซล ตัวอย่างเช่น marginheight = "10"

6

noresize

โดยค่าเริ่มต้นคุณสามารถปรับขนาดเฟรมใดก็ได้โดยคลิกและลากบนขอบของเฟรม แอตทริบิวต์ noresize ป้องกันไม่ให้ผู้ใช้สามารถปรับขนาดเฟรมได้ ตัวอย่างเช่น noresize = "noresize"

7

scrolling

แอ็ตทริบิวต์นี้ควบคุมลักษณะของแถบเลื่อนที่ปรากฏบนเฟรม ซึ่งจะรับค่าเป็น "ใช่" "ไม่" หรือ "อัตโนมัติ" ตัวอย่างเช่น scrolling = "no" หมายความว่าไม่ควรมีแถบเลื่อน

8

longdesc

แอ็ตทริบิวต์นี้ช่วยให้คุณสามารถระบุลิงก์ไปยังเพจอื่นที่มีคำอธิบายแบบยาวเกี่ยวกับเนื้อหาของเฟรม ตัวอย่างเช่น longdesc = "framedescription.htm"

รองรับเบราว์เซอร์สำหรับเฟรม

หากผู้ใช้ใช้เบราว์เซอร์เก่าหรือเบราว์เซอร์ใด ๆ ที่ไม่รองรับเฟรมองค์ประกอบ <noframes> ควรแสดงต่อผู้ใช้

ดังนั้นคุณต้องวางองค์ประกอบ <body> ไว้ในองค์ประกอบ <noframes> เนื่องจากองค์ประกอบ <frameset> ควรจะแทนที่องค์ประกอบ <body> แต่ถ้าเบราว์เซอร์ไม่เข้าใจองค์ประกอบ <frameset> ก็ควรเข้าใจสิ่งที่อยู่ภายใน องค์ประกอบ <body> ซึ่งมีอยู่ในองค์ประกอบ <noframes>

คุณสามารถใส่ข้อความที่ดีสำหรับผู้ใช้ของคุณที่มีเบราว์เซอร์เก่า เช่นขออภัย !! เบราว์เซอร์ของคุณไม่รองรับเฟรม ดังที่แสดงในตัวอย่างข้างต้น

ชื่อเฟรมและคุณลักษณะเป้าหมาย

หนึ่งในการใช้เฟรมที่ได้รับความนิยมมากที่สุดคือการวางแถบนำทางไว้ในเฟรมเดียวจากนั้นโหลดหน้าหลักลงในเฟรมแยกต่างหาก

ลองดูตัวอย่างต่อไปนี้ที่ไฟล์ test.htm มีรหัสต่อไปนี้ -

<!DOCTYPE html>
<html>

   <head>
      <title>HTML Target Frames</title>
   </head>
	
   <frameset cols = "200, *">
      <frame src = "/html/menu.htm" name = "menu_page" />
      <frame src = "/html/main.htm" name = "main_page" />
      
      <noframes>
         <body>Your browser does not support frames.</body>
      </noframes>
   </frameset>
	
</html>

ที่นี่เราได้สร้างสองคอลัมน์เพื่อเติมเต็มสองเฟรม เฟรมแรกกว้าง 200 พิกเซลและจะมีแถบเมนูการนำทางที่ใช้งานโดยmenu.htmไฟล์. คอลัมน์ที่สองเติมในพื้นที่ที่เหลือและจะมีส่วนหลักของหน้าและดำเนินการโดยmain.htmไฟล์. สำหรับลิงก์ทั้งสามที่มีอยู่ในแถบเมนูเราได้กล่าวถึงกรอบเป้าหมายเป็นmain_pageดังนั้นเมื่อใดก็ตามที่คุณคลิกลิงก์ใด ๆ ในแถบเมนูลิงก์ที่มีอยู่จะเปิดขึ้นในหน้าหลัก

ต่อไปนี้เป็นเนื้อหาของไฟล์ menu.htm

<!DOCTYPE html>
<html>

   <body bgcolor = "#4a7d49">
      <a href = "http://www.google.com" target = "main_page">Google</a>
      <br />
      <br />
      
      <a href = "http://www.microsoft.com" target = "main_page">Microsoft</a>
      <br />
      <br />
      
      <a href = "http://news.bbc.co.uk" target = "main_page">BBC News</a>
   </body>
	
</html>

ต่อไปนี้เป็นเนื้อหาของไฟล์ main.htm -

<!DOCTYPE html>
<html>

   <body bgcolor = "#b5dcb3">
      <h3>This is main page and content from any link will be displayed here.</h3>
      <p>So now click any link and see the result.</p>
   </body>
	
</html>

เมื่อเราโหลด test.htm ไฟล์จะสร้างผลลัพธ์ต่อไปนี้ -

ตอนนี้คุณสามารถลองคลิกลิงก์ที่มีอยู่ในแผงด้านซ้ายและดูผลลัพธ์ targetattributeยังสามารถใช้ค่าใดค่าหนึ่งดังต่อไปนี้ -

ซีเนียร์ No ตัวเลือกและคำอธิบาย
1

_self

โหลดเพจลงในเฟรมปัจจุบัน

2

_blank

โหลดหน้าลงในหน้าต่างเบราว์เซอร์ใหม่ กำลังเปิดหน้าต่างใหม่

3

_parent

โหลดเพจลงในหน้าต่างหลักซึ่งในกรณีของเฟรมเซ็ตเดียวคือหน้าต่างเบราว์เซอร์หลัก

4

_top

โหลดหน้าลงในหน้าต่างเบราว์เซอร์แทนที่เฟรมปัจจุบัน

5

targetframe

โหลดเพจลงใน targetframe ที่มีชื่อ