Google AMP - แอตทริบิวต์
บทนี้จะกล่าวถึงคุณลักษณะทั่วไปทั้งหมดที่ใช้โดยส่วนประกอบแอมป์
รายการคุณสมบัติทั่วไปมีดังนี้ -
- fallback
- heights
- layout
- media
- noloading
- on
- placeholder
- sizes
- ความกว้างและความสูง
แอตทริบิวต์ทางเลือก
แอตทริบิวต์ทางเลือกส่วนใหญ่จะใช้เมื่อเบราว์เซอร์ไม่รองรับองค์ประกอบที่ใช้หรือมีปัญหาในการโหลดไฟล์หรือมีข้อผิดพลาดกับไฟล์ที่ใช้
ตัวอย่างเช่นคุณกำลังใช้ amp-video และไฟล์สื่อกำลังมีปัญหาในเบราว์เซอร์ดังนั้นในกรณีเช่นนี้เราสามารถระบุแอตทริบิวต์ทางเลือกและแสดงข้อความว่าไฟล์สื่อไม่สามารถเล่นหรือไม่รองรับโดยเบราว์เซอร์แทนที่จะแสดง ข้อความแสดงข้อผิดพลาดบนหน้า
ทางเลือกที่ใช้กับ amp-video
<amp-video controls
width = "640"
height = "360"
layout = "responsive"
poster = "images/videoposter.png">
<source src = "video/bunny.webm" type = "video/webm" />
<source src = "video/samplevideo.mp4" type = "video/mp4" />
<div fallback>
<p>This browser does not support the video element.</p>
</div>
</amp-video>
ให้เราเข้าใจทางเลือกของระบบปฏิบัติการที่ใช้งานได้โดยใช้ตัวอย่าง -
ตัวอย่าง
<!doctype html>
<html amp lang = "en">
<head>
<meta charset = "utf-8">
<script async src = "https://cdn.ampproject.org/v0.js"></script>
<title>Google AMP - Amp Video</title>
<link rel = "canonical" href = " http://example.ampproject.org/article-metadata.html">
<meta name = "viewport" content = "width = device-width,minimum-scale = 1,initial-scale = 1">
<style amp-boilerplate>
body{
-webkit-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;animation:
-amp-start 8s steps(1,end) 0s 1 normal both
}
@-webkit-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}
</style>
<noscript>
<style amp-boilerplate>
body{
-webkit-animation:none;-moz-animation:none;
-ms-animation:none;animation:none
}
</style>
</noscript>
<script async custom-element = "amp-video"
src = "https://cdn.ampproject.org/v0/amp-video-0.1.js">
</script>
</head>
<body>
<h3>Google AMP - Amp Video</h3>
<amp-video controls
width = "640"
height = "360"
layout = "responsive"
poster = "images/videoposter.png">
<source src = "video/bunny.webm"type="video/webm" />
<source src = "video/samplevideo.mp4"type = "video/mp4" />
<div fallback>
<p>This browser does not support the video element.</p>
</div>
</amp-video>
</body>
</html>
เอาต์พุต
คุณสมบัติความสูง
แอตทริบิวต์นี้ได้รับการสนับสนุนโดยทั่วไปสำหรับรูปแบบที่ตอบสนอง คุณสามารถใช้นิพจน์สื่อกับแอตทริบิวต์ heights และใช้กับความสูงขององค์ประกอบ นอกจากนี้ยังใช้ค่าเปอร์เซ็นต์ดังนั้นความสูงจะถูกคำนวณตามเปอร์เซ็นต์ความกว้างที่กำหนด
ตัวอย่าง
<!doctype html>
<html amp lang = "en">
<head>
<meta charset = "utf-8">
<script async src = "https://cdn.ampproject.org/v0.js"></script>
<title>Google AMP - heights attribute</title>
<link rel = "canonical" href = "http://example.ampproject.org/article-metadata.html">
<meta name = "viewport" content = "width=device-width,minimum-scale = 1,initial-scale = 1">
<style amp-boilerplate>
body{
-webkit-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;animation:
-amp-start 8s steps(1,end) 0s 1 normal both
}
@-webkit-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}
</style>
<noscript>
<style amp-boilerplate>
body{
-webkit-animation:none;-moz-animation:none;
-ms-animation:none;animation:none
}
</style>
</noscript>
<style amp-custom>
amp-img {
border: 1px solid black;
border-radius: 4px;
padding: 5px;
}
h1{font-family: "Segoe UI",Arial,sans-serif;font-weight: 400;margin: 10px 0;}
</style>
</head>
<body>
<h1>Google AMP - heights attribute</h1>
<amp-img src = "images/christmas1.jpg"
width = "320" height = "256"
heights = "(min-width:500px) 200px, 80%">
</amp-img>
</body>
</html>
เอาต์พุต
แอตทริบิวต์เค้าโครง
AMP-Layout เป็นคุณลักษณะสำคัญอย่างหนึ่งที่มีอยู่ใน google-amp เค้าโครงแอมป์ทำให้แน่ใจว่าคอมโพเนนต์ของแอมป์แสดงผลอย่างถูกต้องเมื่อโหลดเพจโดยไม่ทำให้เกิดปัญหาการกะพริบหรือการเลื่อน นอกจากนี้ยังตรวจสอบการแสดงผลเพจก่อนทรัพยากรระยะไกลอื่น ๆ เช่นคำขอ http สำหรับรูปภาพการเรียกข้อมูลจะเสร็จสิ้น
รายการเลย์เอาต์ที่แอมป์รองรับมีดังนี้ -
- ไม่อยู่
- Container
- fill
- fixed
- fixed-height
- flex-item
- intrinsic
- nodisplay
- Responsive
คุณจะได้เรียนรู้โดยละเอียดเกี่ยวกับสิ่งเดียวกันในบทนี้ Google AMP − Layout ของบทช่วยสอนนี้
ขอทำความเข้าใจการทำงานของ layout =” responsive” ด้วยความช่วยเหลือของตัวอย่างดังที่แสดง -
ตัวอย่าง
<!doctype html>
<html amp lang = "en">
<head>
<meta charset = "utf-8">
<script async src = "https://cdn.ampproject.org/v0.js"></script>
<title>Google AMP - Image>/title>
<link rel = "canonical" href = " http://example.ampproject.org/article-metadata.html">
<meta name = "viewport" content = "width = device-width,minimum-scale = 1,initial-scale = 1">
<style amp-boilerplate>
body {
-webkit-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;animation:
-amp-start 8s steps(1,end) 0s 1 normal both
}
@-webkit-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}
</style>
<noscript>
<style amp-boilerplate>
body {
-webkit-animation:none;-moz-animation:none;
-ms-animation:none;animation:none
}
</style>
</noscript>
<style amp-custom>
amp-img {
border: 1px solid black;
border-radius: 4px;
padding: 5px;
}
displayitem {
display: inline-block;
width: 200px;
height:200px;
margin: 5px;
}
h1{font-family: "Segoe
UI",Arial,sans-serif;font-weight: 400;margin: 10px 0;}
</style>
</head>
<body>
<h1>Google AMP - Layout = responsive Image Example>/h1>
<div class = "displayitem">
<amp-img alt = "Beautiful Flower"
src = "images/flower.jpg"
width = "246"
height = "205"
layout = "responsive">
</amp-img>
</div>
</body>
</html>
เอาต์พุต
คุณสมบัติสื่อ
แอตทริบิวต์นี้สามารถใช้ได้กับส่วนประกอบแอมป์ส่วนใหญ่ ต้องใช้แบบสอบถามสื่อและหากค่าไม่ตรงกับองค์ประกอบจะไม่แสดงผล
ให้เราเข้าใจการทำงานของแอตทริบิวต์สื่อด้วยความช่วยเหลือของตัวอย่าง -
ตัวอย่าง
<!doctype html>
<html amp lang = "en">
<head>
<meta charset = "utf-8">
<script async src = "https://cdn.ampproject.org/v0.js"></script>
<title>Google AMP - Image</title>
<link rel = "canonical" href = " http://example.ampproject.org/article-metadata.html">
<meta name = "viewport" content = "width = device-width,minimum-scale = 1,initial-scale = 1">
<style amp-boilerplate>
body{
-webkit-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
-amp-start 8s steps(1,end) 0s 1 normal both;animation:
-amp-start 8s steps(1,end) 0s 1 normal both
}
@-webkit-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes
-amp-start{from{visibility:hidden}to{visibility:visible}}
</style>
<noscript>
<style amp-boilerplate>
body {
-webkit-animation:none;-moz-animation:none;
-ms-animation:none;animation:none
}
</style>
</noscript>
<style amp-custom>
amp-img {
border: 1px solid black;
border-radius: 4px;
padding: 5px;
}
h1{font-family: "Segoe
UI",Arial,sans-serif;font-weight: 400;margin: 10px 0;}
</style>
</head>
<body>
<h1>Google AMP - Media Attribute</h1>
<div class = "displayitem">
<amp-img
media = "(min-width: 600px)"
src = "images/christmas1.jpg"
width = "466"
height = "355"
layout = "responsive">
</amp-img>
</div>
</body>
</html>
เราใช้แอตทริบิวต์สื่อบนแท็ก <amp-img> ดังที่แสดงด้านล่าง -
<amp-img
media = "(min-width: 600px)"
src = "images/christmas1.jpg"
width = "466"
height = "355"
layout = "responsive">
</amp-img>
โปรดทราบว่ารูปภาพจะไม่แสดงหากความกว้างของหน้าจอน้อยกว่า 600px เราจะใช้โหมดมือถือจำลอง Google เพื่อทดสอบตัวอย่าง
เอาต์พุตบนสมาร์ทโฟน
เราตรวจสอบบนอุปกรณ์แล้วไม่สามารถมองเห็นภาพได้เนื่องจากความกว้างของอุปกรณ์น้อยกว่า 600px หากเราตรวจสอบแท็บเล็ตเราจะได้ผลลัพธ์ตามที่แสดงด้านล่าง -
เอาต์พุตบน IPAD
แอตทริบิวต์ Noloading
ส่วนประกอบของแอมป์เช่น <amp-img>, <amp-video>, <amp-facebook> แสดงตัวบ่งชี้การโหลดก่อนที่เนื้อหาจริงจะโหลดและแสดงให้ผู้ใช้เห็น
หากต้องการหยุดแสดงตัวบ่งชี้การโหลดเราสามารถใช้แอตทริบิวต์ noloading ได้ดังนี้ -
<amp-img src = "images/christmas1.jpg"
noloading
height = "300"
width = "250"
layout = "responsive">
</amp-img>
ใน Attribute
แอตทริบิวต์ on ถูกใช้กับอิลิเมนต์สำหรับการจัดการเหตุการณ์และการดำเนินการกับ amp-components ไวยากรณ์ที่จะใช้กับแอตทริบิวต์มีดังนี้ -
ไวยากรณ์ -
on = "eventName:elementId[.methodName[(arg1 = value, arg2 = value)]]"
รายละเอียดส่งผ่านไปยัง on แอตทริบิวต์มีดังนี้ -
eventName- ใช้ชื่อของเหตุการณ์ที่พร้อมใช้งานสำหรับ amp-component ตัวอย่างเช่นสำหรับแบบฟอร์มเราสามารถใช้ submit-success, submit-error eventNames
elementId- ใช้รหัสขององค์ประกอบที่จำเป็นต้องเรียกเหตุการณ์ อาจเป็นรหัสของแบบฟอร์มที่เราต้องการทราบเกี่ยวกับความสำเร็จหรือข้อผิดพลาด
methodName - ใช้ชื่อของเมธอดที่จะเรียกตามเหตุการณ์ที่เกิดขึ้น
arg=value - ใช้อาร์กิวเมนต์ที่มีรูปแบบคีย์ = ค่าส่งไปยังเมธอด
นอกจากนี้ยังสามารถส่งผ่านหลายเหตุการณ์ไปยังแอตทริบิวต์ On ได้ดังนี้ -
on = "submit-success:lightbox;submit-error:lightbox1"
Note - หากมีหลายเหตุการณ์เหตุการณ์เหล่านี้จะถูกส่งต่อไปยังแอตทริบิวต์ on และแยกโดยใช้อัฒภาค (;)
แอตทริบิวต์การดำเนินการ
โดยทั่วไปการดำเนินการจะใช้กับแอตทริบิวต์ on และไวยากรณ์มีดังนี้ -
on = "tab:elementid.hide;"
เราสามารถผ่านการกระทำต่างๆได้ดังนี้ -
on = "tab:elementid.open;tab:elementid.hide;”
Elementid คือรหัสขององค์ประกอบที่จะต้องดำเนินการ
แอมป์มีเหตุการณ์และการกระทำที่กำหนดทั่วโลกซึ่งสามารถใช้กับส่วนประกอบแอมป์ใดก็ได้และเป็นเช่นนั้น tap events และการกระทำคือ hide, show และ togglevisibility.
Note - หากคุณต้องการซ่อน / แสดงหรือใช้การสลับการมองเห็นในองค์ประกอบ html หรือ amp คุณสามารถใช้ได้ on=”tap:elementid.[hide/show/togglevisibility]”
แอตทริบิวต์ตัวยึดตำแหน่ง
แอตทริบิวต์ตัวยึดตำแหน่งสามารถใช้กับองค์ประกอบ html ใด ๆ เช่นองค์ประกอบอินพุตและยังสามารถใช้กับองค์ประกอบแอมป์ตัวยึดตำแหน่งเป็นสิ่งแรกที่จะแสดงบนเพจและเมื่อโหลดเนื้อหาแล้วตัวยึดจะถูกลบออกและ ทำให้มองไม่เห็น
ตัวยึดตำแหน่งในองค์ประกอบอินพุต
<input type = "text" id = "date" name = "date" placeholder = "Start Date">
ตัวยึดตำแหน่งในองค์ประกอบแอมป์
<amp-anim src = "images/loreal.gif" width = "300" height = "250" layout = "responsive">
<amp-img placeholder src = "images/flower.jpg"
layout = "fill">
</amp-img>
</amp-anim>
ขนาดแอตทริบิวต์
ใช้เช่นเดียวกับแอตทริบิวต์ heights ค่าเป็นนิพจน์ดังแสดงด้านล่าง -
<amp-img src = "amp.png"
width = "400" height = "300"
layout = "responsive"
sizes = "(min-width: 250px) 250px, 100vw">
</amp-img>
แอตทริบิวต์ความกว้างและความสูง
ใช้กับองค์ประกอบ html และส่วนประกอบแอมป์เกือบทั้งหมด ความกว้างและความสูงใช้เพื่อระบุพื้นที่ที่องค์ประกอบแอมป์ครอบครองบนหน้า
ตัวอย่าง
<amp-img src = "amp.png"
width = "400" height = "300"
layout = "responsive">
</amp-img>