เขียน css ให้แสดงผลเฉพาะbrowser
May 15th
การ filter เป็นการ hack วิธีหนึ่ง เป็นการจำกัด เบราเซอร์ที่จะแสดงผล ตัวอย่างเช่น
<style type=”text/css”>
*html body{background:green}
html>body{background:black}
</style>
ลองเอาโค้ดนี้ ใส่ไว้ในส่วน head ของเว็บเพจ แล้วลอง previewด้วย IE และ Firefox จะเห็นความแตกต่าง นั่นคือ IE จะสามารถอ่านบรรทัดบน ที่มี * ได้ ส่วน browser อื่นที่ไม่ใช่ IE จะไม่สามารถอ่านบรรทัดบน แต่จะอ่านบรรทัดล่างที่มีเครื่องหมาย > ได้ ดังนั้นเมื่อเปิด ด้วย IE เราจะเห็น bg เป็นสีเขียว เมื่อเปิดด้วย browser อื่น จะเห็นเป็นสีดำ
เราสามารถเลือกใช้รูปแบบใดแบบหนึงก็ได้ โดยการเขียนไว้บรรทัดล่าง เช่น
<style type=”text/css”>
ul li{color:green}
ul>li{color:blue}
</style>
IE จะอ่านบรรทัดบน ทำให้ตัวหนังสือใน li เป็นสีเขียว ส่วน เบราเซอร์อื่น อ่านบรรทัดบนเช่นกัน แต่สามารถอ่านบรรทัดล่างได้ด้วย ทำให้ บรรทัดที่อ่านสุดท้ายทำงาน จะได้ตัวหนังสือใน liเป็นสีน้ำเงิน
รูปแบบที่มักจะนิยมใช้คือ
*html body .class1{……..} หรือ
html>body #header{………}
เป็นการเขียนให้มี ความสำคัญสูงๆ ไม่ให้มี class หรือ id อื่น มาทำงานทับได้ เพราะเราต้องการ hack ให้อ่านบรรทัดนี้






ทำไมหน้าเว็บเวลาเปิดดูบน IE6 มันดูดี แต่เวลาเปิดดูบน IE7 แล้วมันแตกกระจายดูมั่วไปหมดครับ..มีวิธีแก้ไหมครับถ้าเราต้องการให้มันแสดงเหมือนกันทั้ง 2 ตัว
มีครับ แต่ต้องดูโค้ดก่อนครับ ว่าเขียนอย่างไร จึงจะแนะนำวิธีแก้ได้ถูก เอาโค้ดมาโพสต์ที่บอร์ดก็ได้ครับ
คือว่า..อยากจะทราบแนวทางอ่ะครับ..เพราะที่ทำไปแล้วมันพังและ โค้ดยังไม่ได้เขียนใหม่เพราะกลัวเจ้งอีกอ่ะครับ…มี โค้ดอะไรบ้างที่แทรกลงไปแล้วทำให้การแสดงผล ไม่ผิดรูปแบบอ่ะครับหรือวิธีไหนที่ทำให้เว็บเราไม่แตกกระจายเวลา เปิดดูบน IE7 เพราะตอนเขียนใช้ IE6 เขียนอ่ะครับ
ปัญหาของผมตอนนี้คือไม่ว่าจะไฟร์ฟอกหรือIE
ทำไมมันอ่าน*และ>ผ่านหมดอะครับ
เครียดๆๆๆๆ
ลองดูที่ doctype ครับ ว่าใช้ถูกรึป่าว
เพิ่งจับ css ในการทำ layout ครับ เพื่อนๆพอจะลำดับการการศึกษา css อย่างไร ดีครับ
ขอบคุณ
ก้เริ่มจาก กฎ ต่างๆครับ มีไม่เยอะครับ จากนั้นก็ลองทำ layout ดู แล้วก็ ทำพวกกล่อง ครับ
เบื่อกับ ie ค่ะ แต่ละเวอร์ชั่นแสดงผลไม่เหมือนกันเลย
Thank you for good information
แนวนี้ชอบมากเลยครับ
ขอบคุณมากครับผม