เนื่องจากคำถามนี้มีผู้เข้าชมจำนวนมากและนี่เป็นคำตอบที่ได้รับการยอมรับฉันจึงจำเป็นต้องเพิ่มข้อจำกัดความรับผิดชอบต่อไปนี้:
คำตอบนี้เฉพาะสำหรับคำถามของ OP (ซึ่งมีการกำหนดความกว้างในตัวอย่าง) ในขณะที่ใช้งานได้คุณต้องมีความกว้างสำหรับแต่ละองค์ประกอบรูปภาพและย่อหน้า เว้นแต่เป็นความต้องการของคุณฉันขอแนะนำให้ใช้โซลูชันของ Joe Conlinซึ่งโพสต์ไว้เป็นคำตอบอื่นสำหรับคำถามนี้
spanองค์ประกอบเป็นองค์ประกอบแบบอินไลน์คุณจะไม่สามารถเปลี่ยนความกว้างใน CSS
คุณสามารถเพิ่ม CSS ต่อไปนี้ลงในช่วงของคุณเพื่อที่คุณจะสามารถเปลี่ยนความกว้างได้
display: block;
อีกวิธีหนึ่งซึ่งมักจะทำให้รู้สึกมากขึ้นคือการใช้องค์ประกอบเป็นผู้ปกครองสำหรับคุณ<p><span>
<li id="CN2787">
<img class="fav_star" src="images/fav.png">
<p>
<span>Text, text and more text</span>
</p>
</li>
เนื่องจาก<p>เป็นblockองค์ประกอบคุณสามารถตั้งค่าความกว้างโดยใช้ CSS โดยไม่ต้องเปลี่ยนแปลงอะไร
แต่ในทั้งสองกรณีเนื่องจากคุณมีองค์ประกอบบล็อกในขณะนี้คุณจะต้องลอยรูปภาพเพื่อไม่ให้ข้อความทั้งหมดอยู่ใต้รูปภาพของคุณ
li p{width: 100px; margin-left: 20px}
.fav_star {width: 20px;float:left}
PS แทนที่จะfloat:leftในภาพคุณยังสามารถใส่float:rightในli pแต่ในกรณีที่คุณยังจะต้องมีtext-align:leftการปรับเปลี่ยนข้อความได้อย่างถูกต้อง
PSS หากคุณดำเนินการแก้ปัญหาแรกในการไม่เพิ่ม<p>องค์ประกอบ CSS ของคุณควรมีลักษณะดังนี้:
li span{width: 100px; margin-left: 20px;display:block}
.fav_star {width: 20px;float:left}