2010 13 มีนาคม 2010

@ fontface: การแสดงด้วยตัวอักษรที่คุณเลือก; ใช้ WebFonts

CSS เสร็จดำรงอยู่ 10 ปีในปีนี้! บรรดาผู้ที่ได้รับรอบในขณะที่รายได้ขนมปัง (หรือไม่) ใช้ CSS ของพวกเขาแล้วคุณอาจตระหนักถึงวิธีการที่เราได้รับการอดอาหารเพื่อเลือกที่ดีของแบบอักษร แม้จะมีการขาดนักออกแบบตัวอักษรเช่นเดียวกับที่ที่ การ์เด้น CSS เซน ได้ทำให้การใช้ CSS ภาพพื้นหลังที่จะเปลี่ยนแบบอักษรในการแสวงหาความยุติธรรมในการดำเนินการบางอย่างเพื่อการออกแบบของพวกเขา เราได้พยายามยัง Flash / JavaScript hacks ®เพื่อให้บรรลุเป้าหมายในการออกแบบของเรา โดยไม่นี้เป็นวิธีที่ผิดที่จะได้รับแบบอักษรที่เราต้องการในการออกแบบเว็บของเรา แต่แน่นอนมันไม่ได้เป็นวิธีที่ต้องการมากที่สุด และมากกว่าปีที่ผ่านมานักออกแบบเว็บไซต์เช่นฉันได้อาศัยอย่างเต็มที่ในสิบหรือเพื่อให้แบบอักษรสำหรับการออกแบบของพวกเขา

การพัฒนาล่าสุดในเว็บมาตรฐานและรูปแบบตัวอักษรทำให้มันไปได้ที่จะแสดงข้อความ HTML ใน typefaces อื่นนอกเหนือจากที่เดียวกันแบบอักษรเริ่มต้นเก่า มาใน "@ fontface" decleration CSS

@ fontface provids วิธีการแก้ปัญหาที่จะเชื่อมโยงไปยังแฟ้มตัวอักษรที่เกิดขึ้นจริงและเรียกดูได้จากเว็บ การใช้ fontface @ นักออกแบบสามารถใช้แบบอักษรโดยไม่ต้องตรึงข้อความเป็นภาพพื้นหลัง การดำเนินงานเป็นอย่างมากตรงไปข้างหน้าดังที่แสดงด้านล่าง แต่เป็นทุกสิ่งที่ดีมีส่วน CON ให้มันเบราว์เซอร์ที่ไม่สนับสนุนคนเดียว "ประเภทของตัวอักษร" หากคุณกำลังวางแผนที่จะใช้ fontface @ ในไซต์ที่มีการกำหนดให้การสนับสนุนเบราว์เซอร์ข้ามแล้วคุณจะต้องให้แหล่งที่มาชนิดตัวอักษรต่างๆของเดียวกัน

  1. TrueType - รูปแบบการออกแบบให้ดูดีบนหน้าจอ แนะนำอย่างยิ่งสำหรับเบราว์เซอร์ของ Windows (Chrome)
  2. OpenType (CFF) - รูปแบบนี้จะดีกว่าสำหรับงานพิมพ์และไม่เคยดูดีบน Windows
  3. EOT - คุณต้องรูปแบบนี้ถ้าคุณต้องการที่จะกำหนดเป้าหมายของ Internet Explorer IE จะไม่ใช้รูปแบบอื่น ๆ EOT ของเราจะได้รับการพิจารณา "Lite" ตั้งแต่พวกเขาจะถูกบีบอัดและไม่โดเมนที่ จำกัด
  4. SVG - นี่คือรูปแบบ XML ได้รับการสนับสนุนโดยเบราว์เซอร์บางชนิดรวมทั้ง iPhone
  5. WOFF - นี้ cross-browser, รูปแบบตัวอักษรบนเว็บอย่างเดียวคือน้ำหนักเบา (ข้อมูลตัวอักษรเป็นซิปที่ถูกบีบอัด) และสามารถรวบรวมกับทั้ง TrueType หรือ PostScript (CFF) สรุป ได้รับการสนับสนุนในขณะนี้โดย Firefox 3.6 +

โดยใช้ @ fontface

  @ font-face {
 font-family: 'CalligraphyFLFRegular';
 src: url ('CalligraphyFLF.eot');
 src: ท้องถิ่น ('CalligraphyFLF'), ท้องถิ่น ('CalligraphyFLF') รูปแบบ url ('CalligraphyFLF.woff') ('woff'), url ('CalligraphyFLF.ttf') รูปแบบ ('TrueType'), url ('CalligraphyFLF 'รูปแบบ) (' svg # CalligraphyFLF svg ').
 }
 @ font-face {
   font-family: "แบบอักษรของคุณ";
   src: url ("แบบอักษร / font_filename.eot");
   src: ท้องถิ่น ("ชื่ออื่น") ท้องถิ่น ("Alternatename"),
     URL รูปแบบ ("แบบอักษร / font_filename.woff") ("woff"),
     URL รูปแบบ ("แบบอักษร / font_filename.otf") ("OpenType"),
     URL รูปแบบ ("แบบอักษร / font_filename.svg font_filename #") ("svg");
   }
 h2 {font-family: "แบบอักษรของคุณ", จอร์เจีย, serif;} 

ที่คุณสามารถดูจากตัวอย่างข้างต้นจะรวมตัวอักษรแบบอักษรเลือกหนึ่งที่มีการเชื่อมโยงไปยังชุดของ fonttypes สำหรับแบบอักษรเดียวกัน ดังนั้นคนเรียกมันว่า "Kit Font"
มีชุดตัวอักษรที่มีอยู่ที่ชัดเจนให้เชื่อมโยงกับสถานที่ให้บริการ CSS @ font-face ไปได้ภายใต้ข้อตกลงใบอนุญาตของผู้ใช้ (EULA) คือ

แหล่งข้อมูลที่เป็นประโยชน์ WebFont:

  • แบบอักษรสำหรับ @ font-face ฝัง หน้า wiki ที่ http://webfonts.info/wiki/index.php?title=Main_Page
  • เรย์ Larabie . เขาเป็นนักออกแบบตัวอักษรที่มีชื่อเสียงที่ได้ทำหลายร้อยแบบอักษร TrueType ที่น่าสนใจได้อย่างอิสระสำหรับการใช้บนเว็บ แบบอักษรของเขาเป็นอย่างหรูหราตกแต่งและขี้เล่น
  • Dieter Steffmann เป็นผู้ออกแบบแบบอักษรอื่นที่ดี เขาก็มีแบบอักษรที่สวยงามหลายใช้ได้สำหรับทุกคนใช้
  • ร้านค้าแบบอักษร : แบบอักษรที่มีการออกแบบเฉพาะสำหรับการใช้งานเว็บ มากกว่า 30 ที่ประสบความสำเร็จมากที่สุดครอบครัว FontFont ตอนนี้ใช้ได้เป็น FontFonts เว็บ FontShop นอกจากนี้ยังมีผู้ใช้ WebFont รายละเอียดคู่มือ http://www.fontshop.com/blog/newsletters/pdf/webfontfontuserguide.pdf
  • กระรอกตัวอักษร : การแสดงผลงานแบบอักษรทั้งหมดที่กระรอกตัวอักษรสำหรับการใช้งานกับ @ font-face ฝัง CSS กระรอกตัวอักษรมีปริมาณที่น่าประทับใจของประเภทของการทำให้ตายง่ายที่จะเลือกหนึ่งที่ออกและเสนอคล่องแคล่ว "ชุด" - แบบอักษรที่คุณเลือกในหลายรูปแบบพร้อมกับการสาธิต HTML & CSS ที่ใช้ในปัจจุบันมาก @ ไวยากรณ์ font-face . พวกเขายังมีวิธีที่จะ ทำให้ตัวเองของคุณ @ ชุด font-face . ถ้าแบบอักษรที่คุณต้องการใช้ที่ได้รับการอนุญาตอย่างเหมาะสม (คนที่มากับคอมพิวเตอร์ของคุณจะไม่ถูกต้อง), เครื่องกำเนิดไฟฟ้าผลิต EOT, SVG, และ Hey! ไฟล์ WOFF

2009 กุมภาพันธ์ 18, 2009

เพิ่ม DropShadow กับภาพการใช้ CSS

อีก Tut ฉบับย่อ ที่นี่สิ่งที่ง่ายและใช้พลังงานที่ดีของ CSS คือ ... แต่ก็ยากที่ concieve (และมันก็คือไม่ฉัน) จะเริ่มต้นด้วย เพิ่ม Dropshadow อาจจะมีชิ้นส่วนของเค้กสำหรับส่วนมากของเราโดยใช้เครื่องมือในการแก้ไขภาพเช่น Photoshop ฯลฯ ANF ดอกไม้ไฟบาง
เหตุผลที่ผมเลือกใช้สำหรับเงาโดยใช้ CSS ก็คือมักจะสร้างในขณะที่การออกแบบหน้า / html ของแอพลิเคชันที่ต้องการให้ซ้ำ สิ่งที่ฉันหมายถึงคือในเว็บไซต์ที่มีอยู่กับภาพจำนวนมากเช่นคนแสดง freinds หรือรายการแกลเลอรี่ภาพก็จะเป็นเรื่องยากที่จะประมวลผลความเร็วในการโหลดทั้งหมดของภาพที่ได้รับการยกเลิกการโหลดอยู่แล้วเพื่อเพิ่มหรือลบเงาเพื่อที่ เรื่อง
ดังนั้นถ้าคุณได้ทำคิดไปข้างหน้าเล็กน้อยในขณะที่สร้าง HTM​​LS เพื่อเพิ่มหน่วยงานเสริมเหล่านี้หรือมักสถานการณ์ที่ว่าคุณมีลอจิกวนการสร้างไอคอนเหล่านี้ / รูปใน XSL, PHP JAVA หรือภาษาเขียนโปรแกรม / สคริปต์อื่น ๆ คุณสามารถเพิ่มได้ตลอดเวลาจากนั้นเป็นเพียงเรื่องของการแสดงและการซ่อนเงาเหล่านี้โดยใช้สถานที่ให้บริการการแสดงผล CSS, เป็นต่อลูกค้าที่เคยเปลี่ยนแปลงความต้องการของ ... ฉัน havn't กระทำการเรียงลำดับของหัวก้าวหน้านี้ ก่อนหน้านี้ ... แต่ ahev เริ่มต้นตอนนี้!

ในตัวอย่างด้านล่าง, ภาพต้นฉบับที่เป็นเงาฟรีและ dropshadows ถูกนำมาใช้ต้องเป็น! นอกจากนี้ผมได้ไปน้อยพิเศษโดยใช้เทคนิคของ Tut ก่อนหน้านี้ของฉัน (Well! เหล่านี้อาจจะเป็นความหลากหลายที่สั้นที่สุดของงานจึงเป็นธรรมเท่านั้นเรียกพวกเขา "Tut" 's) เกี่ยวกับ การใช้สถานที่ให้บริการคลิป CSS สำหรับแสดงปิดเท่านั้น

ภาพต้นฉบับ

original_image

ผลการค้นหา CSS DropShadow
css_dropshadow_results
ดูการสาธิต | ดาวน์โหลด sourcefiles


2009 กุมภาพันธ์ 17, 2009

Understandng สถานที่ให้บริการคลิป CSS

ฉันต้องการที่จะเข้าใจนี้ทำไม? Humm ... !

ส่วนใหญ่ของนักเขียน CSS จะยอมรับว่าสถานที่ให้บริการคลิป CSS อาจเป็นหนึ่งในที่สุดยกเลิกการใช้คุณสมบัติ CSS มันจึงเป็นความจริงสำหรับฉันมากเกินไปและเป็นส่วนใหญ่ยินดีที่จะละเลยมันจนผมเริ่มปรับเปลี่ยน MooTools TWO Knob ชิ้นส่วน Slider (Pin) (มีตัวบ่งชี้กลาง) .

มีคำแนะนำที่ดีคือจากหนึ่งในผู้ประกอบการปรับเปลี่ยนชิ้นส่วนเลื่อนการใช้ภาพภ​​ูมิหลังตัด (ต่อส่วนความกว้างของตัวแปร) เพื่อระบุช่วงเลื่อน ดังนั้นเวลาที่จะใส่ความสนุก แต่ยกเลิกการเช่าเหมาลำ (สำหรับฉัน ofcourse) ของฉันน่านน้ำของสถ​​านที่ให้บริการคลิป CSS มา

ดี! วิธีการที่ยากที่จะสามารถ? ไม่มากเลย ... ใช่และไม่ใช่ ไวยากรณ์ที่จะใช้สถานที่ให้บริการคลิป CSS คือตรงสวย แต่ความหมาย / usuage เป็นบิต croocked กับหน่วยความจำเช่นเหมือง, everytime I นั่งการ rework กับสคริปต์ Slider ของฉัน ... ฉันมี tokeep อ้างอิงกลับไปยังสถานที่ให้บริการการใช้งานของคลิปนี้เพื่อเตือนตัวเองตรรกะที่ฉันได้สร้างขึ้นในสคริปต์ของฉัน .... HENCE! คิดว่าจะปากกามันลงมาด้วยความหวังที่จะจำมันในอนาคต (และยังเพื่อประโยชน์ของผู้ที่ดูเหมือน boggled โดยสถานที่ให้บริการคลิป CSS)

คลิป CSS ทำอะไร?

คลิปเป็นส่วนหนึ่งของโมดูลผลภาพของ CSS 2.1 ใส่เพียงงานที่จะวางหน้าต่างที่มองเห็นอยู่ด้านบนของวัตถุที่จะถูกตัดทอนจึงตัดภาพและการสร้างภาพขนาดเล็กโดยไม่ต้องสร้างแฟ้มเพิ่มเติม (ผมมีอยู่แล้วนำคุณลักษณะนี้เพื่อการใช้งานที่ดีขึ้นในชิ้นส่วน Slider :) )

การใช้สถานที่ให้บริการคลิป CSS, คุณสามารถสร้างการตัดโดยใช้รูปทรงสี่เหลี่ยมมุมฉาก ชอบหลายคุณสมบัติ CSS อื่น ๆ (เช่นขอบ padding ฯลฯ ), การใช้การดูแลรักษาต้องสี่พิกัดบน, ล่าง, ขวา, ซ้าย (TRBL) ธรรมชาติ croocked ที่ให้บริการนี​​้สะท้อนให้เห็นถึงเมื่อคุณใช้เวลามองใกล้ที่วิธีการคำนวณคลิปภาคคลิปที่ใช้เหล่านี้สี่พิกัด (ส่งเข้าไปในสมองโยนในขณะที่) ตอนนี้สับสนคุณด้านล่างเริ่มจากด้านบนและด้านขวาเริ่มจากด้านซ้าย :) . คุณจะเห็นสิ่งที่ผมพูด? .... ดังนั้นกระทู้นี้ ...

นี้สับสนเล็กน้อยสามารถหายไปกับคำอธิบายภาพนี้จากคุณสมบัติ CSS คลิป / ดูแลรักษาดังนี้!

CSS ความต้องการของ Clip

งานที่เราได้เริ่มต้นคือการตัดภาพต่อไปนี้เป็นภาพที่หา squarer (และยังเป็นภาพมุมกว้าง)

original_image clip_demo
Thumbnal Original / รูปภาพ ข้อกำหนดสำหรับคลิป Sqaure Thumbmail

ผลการค้นหาคลิป CSS

clip_results

ดูการสาธิต | ดาวน์โหลด sourcefiles


2008 12 ตุลาคม 2008

ในแนวตั้ง (และแนวนอน) ที่ศูนย์การจัดเนื้อหาใน DIV ใช้ CSS

ก่อนที่เราจะมีการจัดการกับ CSS เพื่อสร้างเค้าโครงหน้าของเราจัดเนื้อหาบางส่วนที่อยู่ภายในเซลล์ของตารางดูเหมือนเด็กเล่นเพียงของ เพียงแค่ตั้งค่า "จัด" หรือสถานที่ให้บริการ "VALIGN" ของตารางที่จะมีการจัดตำแหน่งที่คุณเลือกชิ้นส่วนของเค้ก!
ด้วยรูปแบบ CSS แต่เรามี "vertical-align" สถานที่ให้บริการสำหรับองค์ประกอบก็ดูเหมือนจะไม่เป็นง่ายๆเป็น "เส้นตรง" หรือคุณสมบัติ "VALIGN" การจะมีมากขึ้น specifiic "vertical-align" ไม่เคยดูเหมือนว่าจะแก้ปัญหาใด ๆ ของคุณโดยเฉพาะถ้ามีการเขียนชิ้นส่วนของ cross-browser CSS

โดยไม่ต้องใช้ตาราง HTM​​L ปัญหาของศูนย์กลางบนวัตถุไม่ว่าจะเป็นภาพหรือข้อความบางส่วนที่มีอยู่ภายในได้รับอาจจะทุก UI / CSS ฝันร้ายนักพัฒนาในบางจุด ปัญหานี้ต่อไป extrapolates กังวลของคุณจากการจัดตำแหน่งหากวัตถ​​ุที่จะเป็นศูนย์กลางเป็นแบบไดนามิกในธรรมชาติเช่นเมื่อความสูงของมันคือตัวแปร (ความสูงที่ไม่รู้จัก)

แม้ว่าจะไม่มีวิธีการแก้ปัญหาตรงไปข้างหน้าเป็นที่รู้จักที่จะทำงานในช่วงของเบราว์เซอร์ที่เราต้องจัดการกับการแก้ปัญหาที่ผมได้พยายามที่จะมาถึงที่ไม่ดูเหมือนจะทำงานในเบราว์เซอร์ไม่กี่แห่งที่ผมได้พยายามใน (IE6, IE 7 , FF)

SOLUTION:
ในเบราว์เซอร์เช่น Mozilla, Opera และ Safari แปลกพฤติกรรม "vertical-align" สถานที่ให้บริการสามารถนำความรู้สึกของตนเพียงโดยการตั้งค่า "แสดง" สถานที่ให้บริการของแผนกที่มีการ "ตารางเซลล์" (แสดง: ตารางเซลล์-) .

ปัญหาที่เกิดขึ้นยังคงอยู่กับครอบครัวเบราว์เซอร์ IE ที่ยังดูเหมือนจะไม่เข้าใจว่าจะมี "ตารางเซลล์" ทรัพย์สินและไม่รู้ว่าพวกเขาเป็นพวกเขาก็ไม่สนใจมัน วิธีการแก้ปัญหาให้ด้านล่างนี้แม้ว่าโฆษณาแบบง่ายๆองค์ประกอบเพิ่มเติม DOM ไม่กี่ HTML ของคุณจะทำให้สิ่งที่เกิดขึ้น

CSS และ HTML ลักษณะเช่นนี้
.outer_container {
display: table;
text-align:center;
height: 140px;
width:140px;
position: relative;
overflow: hidden;
float:left;
margin:0px 10px 0px 0px;
}
.obj_container {
display: table-cell;
vertical-align: middle;
#position: absolute;
#top: 50%;
#left:50%;
}
.obj{
#position: relative;
#top: -50%;
#left:-50%;
margin:0px auto 0px auto;
}

HTML: -
<div class="outer_container">
<div class="obj_container">
<div class="obj"> <img src="image1.jpg"/> <br/> ขอ Views: 3456 </ div>
</ div>
</ div>

ผลมีลักษณะเช่นนี้: -

HTML_CSS_vertical_align_vertical_middle_aligned_images

ดูการสาธิตที่นี่ | ดาวน์โหลดไฟล์ที่มา (Downloaded 448 ครั้ง)


ทำความเข้าใจเกี่ยวกับวิธีการแก้ปัญหา:
สำหรับเบราว์เซอร์ที่เข้าใจแสดง: ตารางและการแสดง: คุณสมบัติของตารางเซลล์มันไม่ค่อยจะต้องการคำอธิบายใด สำหรับ IE มีการใช้สับเฉพาะ IE (สับกัญชา) เราอย่างตำแหน่งที่เก็บวัตถุ (obj_container) ในครึ่งหนึ่งของความสูงใช้ได้ แล้ววัตถุ (obj) ภายในเป็นตำแหน่งที่ค่อนข้างและจะถูกย้ายขึ้นโดยครึ่งหนึ่งของความสูงของมัน ... ดี! ฉันดูเหมือนจะเข้าใจลักษณะบนใบหน้าของคุณ แต่มันใช้งานได้ ลอง!
เทคนิคดังกล่าวจะรวมกันเพื่อให้เราแก้ปัญหาเบราว์เซอร์ดังกล่าวข้างต้นข้าม


CSS สามารถแก้ไขได้ง่ายดังต่อไปนี้เพื่อให้บรรลุ vertical-align: บนหรือ vertical-align: ด้านล่าง

TOP จัด CSS
.obj_container_top {
display: table-cell;
vertical-align: top;
#position: absolute;
#top: 0%;
#left:50%;
}
.obj_top{
#position: relative;
#top: 0%;
#left:-50%;
margin:5px auto 0px auto;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
color:#cccccc;
}

HTML: -
<div class="outer_container">
<div class="obj_container_top">
<div class="obj_top"> <img src="image1.jpg"/> <br/> ขอ Views: 1234 </ div>
</ div>
</ div>

ผลมีลักษณะเช่นนี้: -

HTML_CSS_vertical_align_vertical_top_aligned_images

BOTTOM จัด CSS
.obj_container_bottom {
display: table-cell;
vertical-align: bottom;
#position: absolute;
#bottom: 0%;
#left:50%;
}
.obj_bottom {
#position: relative;
#bottom: 0%;
#left:-50%;
margin:5px auto 0px auto;
}

HTML: -
<div class="outer_container">
<div class="obj_container_bottom">
<div class="obj_bottom"> <img src="image1.jpg"/> <br/> ขอ Views: 1234 </ div>
</ div>
</ div>

ผลมีลักษณะเช่นนี้: -

HTML_CSS_vertical_align_vertical_bottom_aligned_images

ดูการสาธิตที่นี่ | ดาวน์โหลดที่นี่


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

ดูเหมือนว่าทุกเพศทุกวัยตั้งแต่ผมพยายามที่จะหาทางออกที่เหมาะสมเพื่อการจัดแนวนี้ปัญหาที่เกิดขึ้น แต่ตอนนี้มีวิธีการแก้ปัญหานี้ผมรู้สึกเหมือนอยู่ที่ความสงบสุขเล็ก ๆ น้อย ๆ

ด้วยความหวังว่าสักวันหนึ่ง

  • สถานที่ให้บริการตามแนวตั้งแนว-ใน CSS จะทำงานเหมือนมันไม่อยู่ภายในเซลล์ของตารางโดยไม่ต้องที่จะชนะมากรอบพุ่มไม้
  • อย่างน้อยการตั้งค่า margin-top: รถยนต์และขอบล่าง: อัตโนมัติจะให้เป็นผลเช่นเดียวกับกับขอบซ้ายและชุดขอบขวาอัตโนมัติ
  • สงครามเบราว์เซอร์จะมากกว่าบางวัน
  • มีเพียงแค่จะเบราว์เซอร์สำหรับทั้งหมด

ดาวน์โหลด CSS และ HTML ของการแก้ปัญหาข้างต้นที่นี่ (Downloaded 448 ครั้ง) .. สำหรับ understandability, CSS ไม่ได้รับการเพิ่มประสิทธิภาพ

PS: และโดยวิธีการเหล่านั้นจะรูปขนาดย่อของภาพบางส่วนที่ผมได้คลิก ... :)


2008 13 สิงหาคม 2008

Tokenizing String คั่นภายใน XSL

หากความต้องการของคุณคือการแยกค่าโหนดใน XML, ที่ประกอบด้วยสตริงที่คั่นด้วยค่าลงไปในแต่ละรายการแล้วคุณได้มาถึงสถานที่ที่เหมาะสม ... ลองดูได้ที่ตัวอย่างด้านล่าง หากคุณไม่คุ้นเคยกับนิด ๆ หน่อย ๆ ของ XML และ XSL ... ผมไม่คิดว่าคุณจะต้องการคำอธิบายใด ๆ
นอกจากนี้ตัวอย่างนี้รวมถึงการใช้งานของฟังก์ชั่นเช่น XSL XSL: โทรแม่, xsl: substring ก่อน, xsl: substring หลังถ้านั่นคือสิ่งที่คุณหลังจาก

XML ที่จะเปลี่ยน (food.xml): -
สมมติงานคือการ tokenize สตริงคั่นด้วยเครื่องหมายจุลภาคใน "คำหลัก" แท็ก

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>

XSL (food.xsl): -

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>

</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

การแสดงผล HTML ผลลัพธ์: -

<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>

จำเป็นต้องพูด ... เพียงแค่เปลี่ยนค่าพารามิเตอร์ "delimitr" ถึงตัวคั่นที่คุณเลือก


2008 20 มิถุนายน 2008

Bug พื้นที่สีขาวในรายการเส้น / รายการ (li) ใน IE6

หากท่านที่เคยทำ (หรือทำให้หนึ่ง) เมนูแนวตั้งโดยใช้ข้อมูลในรายการ (li) แท็กและ CSS คุณอาจพบนี้ยังข้อผิดพลาดใน Internet Explorer ที่ IE 6 แทรกช่องว่างเหล่านี้ระหว่างรายการที่มีองค์ประกอบระดับบล็อกอื่น คือถ้ามีช่องว่างใด ๆ ระหว่างข้อมูลในรายการในมาร์กอัป ขอบคุณ แต่ขอบคุณที่ไม่มีรุ่น IE 7 ดูเหมือนว่าปลอดจากข้อผิดพลาดนี้
ถ้าเช่นฉันและอื่น ๆ อีกมากมายคุณอยู่ในวงของนักพัฒนาผิดหวังที่ยังคงต้องได้รับเค้าโครงใหม่ของพวกเขาทำงานมากเกินไปใน IE6 นี้แล้วนี้อาจเป็นประโยชน์ ได้ดู ...

มาร์กอัปตัวอย่าง:

id="menu"> <ul
<li div> href="#"> หน้าแรก </ a> </ li>
<li div> href="#"> เกี่ยวกับ </ a> </ li>
<li div> href="#"> บริการ </ a> </ li>
<li div> ผลงาน href="#"> </ a> </ li>
<li div> href="#"> คำถามที่พบบ่อย </ a> </ li>
<li div> href="#"> ติดต่อเรา </ a> </ li>
<ul />

คุณอาจสร้าง CSS บางคล้ายกับหนึ่งด้านล่างเพื่อางกล่าวมาข้างต้นเป็นเมนูแนวตั้ง ....

CSS ตัวอย่าง ...
เมนู # {
margin: 0; padding: 0; พื้นหลัง: # FF9900;
รายการแบบประเภท: ไม่มี; ความกว้าง: 150px;
}
# li เมนู {margin: 0; padding: 0;}
เมนู # {display: block;
color: # 555555;
ตกแต่งข้อความ: ไม่มี;
padding: 0 15px;
line-height: 2.5; พรมแดนด้านล่าง: 1px ของแข็ง # FFF;
}

ผลที่คุณจะเห็น ...
โมฆะ

โซลูชันสำหรับปัญหานี้ ... (แก้ไขเพิ่ม / CSS ในตัวเอียงตัวหนา)

เมนู # {
margin: 0; padding: 0; พื้นหลัง: # FF9900; รายการแบบประเภท: ไม่มี; ความกว้าง: 150px;
float: left; / * นี้มีรายการรายการ floated * /
}
li # เมนู {
margin: 0; padding: 0;
float: left; / แก้ไข * นี้ * /
ความกว้าง: 100%; / * ช่องว่างข้อบกพร่องใน IE6 * /
}
เมนู # {
display: block; color: # 555555;
ตกแต่งข้อความ: ไม่มี;
padding: 0 15px;
line-height: 2.5; พรมแดนด้านล่าง: 1px ของแข็ง # FFF;
}

หาก doesnot วิธีการแก้ปัญหาดังกล่าวข้างต้นดูเหมือนจะทำงาน (ด้วยเหตุผลที่รู้กันว่า IE6 เท่านั้น) ... ลองใช้วิธีนี้แทน

เพียงแค่เพิ่มรูปแบบเพิ่มเติมนี้เท่านั้น IE6 เพื่อมาร์กอัปของคุณ ...

<- [if lt IE 7>
type="text/css"> <style
# li เมนู {display: inline บล็อก;}
# li เมนู {display: block;}
</ style>
<[endif] ->


2008 4 พฤษภาคม 2008

รวม XSL XSL ภายใน

หาก XML / XSL แปลงเป็น domian ของคุณแล้วมีเวลาเมื่อเราต้องการชิ้นส่วนของรหัสแบบไดนามิกที่จะใช้รายการที่ห้องสมุด (ที่จะทำใหม่ใช้งาน) สิ่งที่ฉันหมายความอาจอาจจะทำให้ชัดเจนมากขึ้นกับสถานการณ์เช่นนี้

ลองนึกภาพคุณกำลังสร้างเว็บไซต์ (และใช้ XML, XSL transfroms ofcourse) และมากที่สุดของหน้าเว็บจะมีโมดูลความเห็น ดี! แล้วทั้งคุณคัดลอกหรือวางรหัสนี้เป็นแม่แบบในทุกหน้า (ซึ่งผมได้ขอพูด แต่ทำให้การบำรุงรักษาและการทำงานซ้ำฝันร้าย) หรือดียิ่งขึ้นคุณจะสร้างแฟ้มรวมซึ่งอาจจะทำลายในที่ที่คุณต้องการได้ในหน้าเว็บของคุณ ( s) ...
ดังนั้นเราจะสร้างไฟล์ XSL รวมถึงวิธีการและรวมไว้ภายในไฟล์อื่น XSL? นี่คือวิธีการ ...

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

1 food.xml - XML​​ แฟ้มข้อมูลที่เปลี่ยนแปลงจะถูกนำไปใช้
2 food.xsl - ไฟล์ XSL หลักซึ่งจะเปลี่ยน food.xml ของเรา
3 inc_fruits.xsl - XSL รวมไฟล์ที่จะแสดงข้อมูลผลไม้
4 inc_vegtables.xsl - XSL รวมไฟล์ที่จะแสดงผลข้อมูล vetetables

ฉันไม่คิดว่าฉันมีอธิบายมากรหัสสำหรับองค์ประกอบข้างต้นจะเป็นตัวอธิบาย ...

FOOD.XML


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>

<vegetables>
<item name="spinach" moreinfo="http://www.spinach.com">Spinach is full of iron</item>
<item name="asparagus" moreinfo="http://www.asparagus.com">Asparagus contains loads of vitamin D </item>
<item name="fenugreek" moreinfo="http://www.fenugreek.com">Fenugreek is rich in vitamin C</item>
</vegetables>
</food>


FOOD.XSL


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:include href="inc_fruits.xsl" />
<xsl:include href="inc_vegetables.xsl" />
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
<body>
<h3><xsl:value-of select="/food/description" /></h3>
Modification Date : <xsl:value-of select="/food/date" />
<hr/>
<h5> About Fruits</h5>
<xsl:call-template name="about_fruits"/>

<hr/>
<h5> About Vegetables</h5>
<xsl:call-template name="about_vegetables"/>

<hr/>
</ body>
</ html>
</ xsl: template>
</ xsl: stylesheet>


INC_FRUITS.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_fruits">
<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


INC_VEGETABLES.XSL

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:template name="about_vegetables">
<xsl:for-each select="/food/vegetables/item/@*">
attribute name : <xsl:value-of select="name()"/>
attribute value : <xsl:value-of select="."/> <br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

ดาวน์โหลดไฟล์ทั้งหมดข้างต้นที่นี่ (250 ดาวน์โหลด)


2008 12 เมษายน 2008

เบราว์เซอร์ CSS ขั้นต่ำสับข้ามความสูง

โพสต์ IE 6, MSIE ได้ชนิดพอที่จะให้เราพัฒนา UI โดยการเพิ่มอีกไม่กี่คุณสมบัติ CSS มาตรฐานให้มากที่สุดเบราว์เซอร์มาตรฐานอื่น ๆ หนึ่งสถานที่ให้บริการที่มีประโยชน์ดังกล่าวใน "min-height" สถานที่ให้บริการตรงไปข้างหน้าพริตตี้ที่ไม่จำเป็นต้องอธิบายยืดยาว เมื่อ min-height สำหรับการแบ่งเป็นที่ตั้งมันก็ยังคงมีความสูงชุดที่เมื่อเนื้อหาบ้านมันตรงน้อยกว่าก็สามารถถือและที่สำคัญ (ไม่เหมือนวานิลลาสถานที่ให้บริการ "ความสูง" ธรรมดา) เครื่องชั่งน้ำหนักในคำพูดหรือ CSS, ก็จะทำงานเช่น ส่วนที่มี "ความสูง" ตั้ง "รถยนต์" ...

สำหรับบางส่วนของเรานักพัฒนาที่ยากจนที่ยังคงจำเป็นต้องโค้ด CSS ที่ยังต้องทำงานใน IE6, UN ว่างของ "min-height", สามารถพิสูจน์ปิดการแสดงที่บางครั้ง ... สิ้นหวัง donot

โชคดีที่เรามี quirks เพียงพอใน IE ที่เราจะใช้เพื่อประโยชน์ออกมาและตัดทางผ่านของเราที่จะไปถึงเป้าหมายของเราคือ ... ทำให้กองราวกับ min-height ของมันใน IE6

โซลูชันที่ 1: การใช้สับขีด [ ... Read more ]

.box1 {
min-height: 200px;
height:auto;
_height:200px;
}

HTML: -
<div class="box1">Some dynamic content with variable height ...</div>


โซลูชัน 2: การใช้คุณสมบัติสับ CSS Selector

.box2 {
min-height:200px;
height:200px;
}
div[class] .box2 {
height:auto;
}

HTML: -
<div class="someclass">
<div class="box2 common">Some dynamic content with variable height ...</div>
</div>

คุณสมบัติที่สับ CSS Selector ใช้ประโยชน์จากความเป็นจริงเบราว์เซอร์รุ่นก่อนหน้านี้ IE6 ท่าข้าม atribute เลือก หมายเหตุความต้องการของแผนกภาชนะอื่นที่มี class = "SomeClass" เพียง presense ของแอตทริบิวต์ชั้นสำหรับการแบ่งนี้จะแทนที่ความสูงกลับไปที่รถยนต์สำหรับ Opera, Mozilla และ MSIE7 และต่อมา IE6 ซึ่งไม่สนับสนุนการ selectors atribute, ละเว้นมัน

ดูการสาธิตของสับ min-height สำหรับ IE6



2008 4 เมษายน 2008

การทำงานกับ XML คุณสมบัติโหนดใน XSLT

หากคุณใช้ XML และ XSL แล้วคุณอาจได้เจอเวลาเมื่อคุณต้องเล่นรอบที่มีคุณลักษณะและค่าของโหนด XML ในคุณ XSL พวกเขาจะโหลดของเว็บไซต์ที่มีข้อมูลการยืดยาวเกี่ยวกับเรื่องนี้ แต่ไม่มีผู้ใดผมพบว่ามีช่วงสั้น ๆ และแม่นยำ ... นี้ไม่มีสอน XML / XSL แต่ความพยายามของฉันที่จะนำร่วมกันจัดเรียงของรายการโกงบางส่วน ...

ตัวอย่าง XML ที่เราจะทำงานร่วมกับมีลักษณะเช่นนี้ ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<fruits type="tropical">
<item name="mango" moreinfo="http://www.mango.com">Mango is the king of fruits</item>
<item name="banana" moreinfo="http://www.banana.com">Banana once a day , keeps the doctor away</item>
<item name="orange" moreinfo="http://www.orange.com">Orange is the color and rich in vitamin C</item>
<item name="Papaya" moreinfo="http://www.papaya.com">Papaya - Hot when raw, cold when ripe</item>
</fruits>
</food>

เพื่อช่วยให้เริ่มต้นการเปลี่ยนแปลงข้างต้น XML ของเราโดยใช้ XSL

ตัวอย่างที่ 1: แสดงค่าที่เลือกแอตทริบิวต์

<xsl:value-of select="/food/fruits/item[@name='orange']" /><br />
to get more information about <a href="{/food/fruits/item[@name='orange']/@moreinfo}" target="new" ><xsl:value-of select="/food/fruits/item[@name='orange']/@name" /> </a>

ผล HTML จะมีลักษณะเช่น

Orange is the color and rich in vitamin C,
to get more information about <a href="http://www.orange.com" target="new">


ตัวอย่างที่ 2: looping ผ่านและแสดงชื่อแอตทริบิวต์ทั้งหมด XML และคุ้มที่สุดของพวกเขา

<xsl:for-each select="/food/fruits/item/@*">
attribute name : <xsl:value-of select="name()"/>,
attribute value : <xsl:value-of select="."/> <br />
</xsl:for-each>

ผล HTML จะมีลักษณะเช่น


attribute name : name, attribute value : mango
attribute name : moreinfo, attribute value : http://www.mango.com
attribute name : name, attribute value : banana
attribute name : moreinfo, attribute value : http://www.banana.com
attribute name : name, attribute value : orange
attribute name : moreinfo, attribute value : http://www.orange.com
attribute name : name, attribute value : Papaya
attribute name : moreinfo, attribute value : http://www.papaya.com


ดาวน์โหลดไฟล์ทั้งหมดข้างต้นที่นี่ (243 ดาวน์โหลด)



ดูพื้นที่นี้ฉันจะให้การปรับปรุงนี้มีการค้นพบใหม่ ...


2008 11 มีนาคม 2008

อะไร CSS รีเซ็ตมีอะไรบ้าง

ตั้งค่าใหม่เป็น CSS / คำ CSS เพื่อกำหนดจำนวนของรูปแบบองค์ประกอบในการพื้นฐานเฉพาะที่สร้างความสอดคล้องกันระหว่างเบราว์เซอร์ต่างๆ

เราทุกคนได้รับการผ่านฝันร้ายของการเขียนข้ามเบราว์เซอร์ของ CSS ดังนั้นเมื่อเราเริ่มต้นการเขียน CSS ของเราก็ปฏิบัติเพื่อตั้งค่าใหม่ได้ก่อนที่จะลบ / ตั้งค่าเบราว์เซอร์ใด ๆ ที่ไม่สอดคล้องกันข้ามคือ CSS รีเซ็ตมีไม่กี่บรรทัดที่เรียบง่ายของ CSS ที่คุณจะเริ่มต้นกับ CSS ของคุณเพื่อให้คุณมีฐานที่สะอาดเพื่อเริ่มต้นสร้างของคุณเมื่อ

ตั้งค่า CSS ที่ฉันปกติมักจะใช้ลักษณะเช่นนี้

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
margin:0;
padding:0;
}
html {font-size: 76%;}
table {
border-collapse:collapse;
border-spacing:0;
}
fieldset, img {
border:0;
}

UL, ol {
รูปแบบรายการ: ไม่มี;
}

H1, H2, H3, H4, H5, H6 {
font-size: 100%;
font-น้ำหนัก: ปกติ;
}


รีเซ็ตขนาดตัวอักษรเบราว์เซอร์
นอกจากนี้ยังทราบว่าการตั้งค่าใหม่ได้นำไปใช้ขนาดตัวอักษรเบราว์เซอร์ในบรรทัดต่อไปนี้ ...

html {font-size: 76%;}

ข้างต้น CSS ตั้งขนาดตัวอักษรเบราว์เซอร์ถึง 10 พิกเซลและสิ่งนี้ทำให้มันเป็นไปได้ที่จะทำงานกับขนาดตัวอักษรญาติ (ซึ่งเป็นทุกที่สำคัญจากการปฏิบัติตาม WAI prespective)
สำหรับเช่นในความหมายดังต่อไปนี้ font-size ในช่วงตั้ง 10 พิกเซลและว่าใน paragarph ถูกตั้งค่าเป็น 14 พิกเซล ...

span {font-size: 1em;}
p {font-size: 1.4em;}


NDK บ้าน | การแสดงไอที ​​| เพดานการแสดง | Penmenship การแสดง | Awe การแสดง | การแสดงตัวเอง