2013-09-03 6 views
5

मैं अक्सर एक छवि है कि मैं चारों ओर पाठ लपेट, और कभी कभी ग्रंथों awkwardly लपेटता, जैसे इतना:मैं HTML टेक्स्ट अनाथों को कैसे रोक सकता हूं?

enter image description here

HTML में, छवि बाईं ओर जारी है और पाठ केवल इस प्रकार है:

<p><img style="float:left;" src="/images/[image]" /></p> 
<p>This is my David Copperfield, <em>I was born</em> kind of bio.  For a more concise one, please see the <a href="/jenny/press-kit#bio">press kit</a>.</p> 
... 

यह ज्यादातर काम करता है, सिवाय इसके कि जब पाठ की लंबाई छवि के निचले हिस्से में चलने के लिए होती है और बाएं हाशिए पर वापस बहती है, और जब टेक्स्ट की मात्रा एक से अधिक पंक्तियों को भरने के लिए पर्याप्त नहीं होती है (इस मामले में, यह केवल एक शब्द है)। जब ऐसा होता है, तो यह वास्तव में बुरा लगता है।

तो, क्या पाठ प्रवाह को नियंत्रित करने का कोई तरीका है ताकि ऐसा न हो?

उत्तर

2

क्या तुम कर सकते हो p टैग जहां पाठ नहीं है करने के लिए overflow: hidden जोड़ने है:, पैराग्राफ के बीच खाली लाइनों को हटाने, हालांकि यह एक प्रमुख लेआउट परिवर्तन (हालांकि शायद एक अच्छा एक) होगा द्वारा। इससे ऐसा कोई टेक्स्ट हो जाएगा जो छवि के बाद बड़े हिस्से के साथ होगा। अब जब आपके पास बड़े पैराग्राफ हैं तो यह मजाकिया लग सकता है, हालांकि यदि आपके पैराग्राफ सभी काफी कम हैं तो इससे मदद मिलनी चाहिए।

उदाहरण: http://jsfiddle.net/8ZsKy/2/

बारी-बारी से तुम सिर्फ एक वर्ग नियम जोड़ सकते हैं और करने के लिए संभावित "समस्या" पैराग्राफ में यह लागू हो सकते हैं।

p.wrap-inline { 
    overflow:hidden; 
} 

संपादित: अद्यतन jsfiddle (उफ़)

+0

प्रश्न में दिए गए जोखिम से बच नहीं सकते हैं, मैंने इसे सभी पी टैग पर लागू करने का प्रयास किया, लेकिन इसने छवि के नीचे सबकुछ मजबूर कर दिया। इसे अपमानजनक पैराग्राफ में चुनिंदा रूप से लागू करना प्रतीत होता है, लेकिन यह थोड़ा सा विज्ञापन है, जिसमें आपको इसे मैन्युअल रूप से लागू करना होगा, लेकिन मैं इसके साथ अभी भी रह सकता हूं। लेकिन पहले स्थान पर लेआउट और प्रवाह के साथ अतिप्रवाह का क्या संबंध है? –

+1

मुझे यह समस्या तब मिली जब छवि 'पी' टैग में भी थी। इसलिए यदि आप इसे सभी पर लागू करना चाहते हैं तो सुनिश्चित करें कि छवि एक में नहीं है। जब आप इस मामले में 'ओवरफ़्लो: छुपा' लागू करते हैं तो यह "बीएफसी" या ब्लॉक स्वरूपण संदर्भ बनाता है। यदि आप बेहद रुचि रखते हैं तो यहां अधिक जानकारी: http://stackoverflow.com/questions/6196725/how-does-the-css-block-formatting-context-work और http://colinaarts.com/articles/the- जादू-ऑफ-द-अतिप्रवाह छिपा / – Don

-4
<img style="float:left; clear="both" src="/images/[image]" /> 
+3

यह भी मान्य नहीं है। – Don

0

यह सवाल वास्तव में मुझे सोच हालांकि यह कभी कभी वास्तव में कष्टप्रद है, अतीत में मैं लाइन ऊंचाई एक छोटे से समायोजित करके इस के लिए इसी तरह की समस्याओं तय कर दी है,

line-height:20px; 

या वास्तविक आकार को एडजस्ट करने के लिए किया था छवि एक छोटे को बड़ा या छोटा,

<img style="float:left;" src="/images/[image]" width="100" height="200" /> 

या पाठ की ट्रैकिंग को बदलने की

letter-spacing: 0.1em; 

उपयोग या हायफ़नेशन (मुझे यह पसंद है या इसकी सलाह नहीं देते)

hyphens: auto; 

हालांकि जहां तक ​​मेरी जानकारी के लिए चला जाता है मैं पाठ अनाथों को खत्म करने के लिए किसी भी सीएसएस नियमों का पता नहीं है। स्क्रिप्ट हो सकती है लेकिन मैंने इसके बारे में कभी नहीं सुना है और कुछ समय पहले इस पर थोड़ा सा शोध किया है। उम्मीद है कि यह मदद की :)

+0

मैं इसे HTML पर विज्ञापन समायोजन द्वारा ठीक कर सकता हूं, लेकिन मैं एक ऐसे समाधान की तलाश में हूं जो वैश्विक स्तर पर काम करता है, प्रत्येक व्यक्तिगत स्थिति के लिए बिना ट्यूनिंग के। –

1

यह कैसे तैरता काम करता है। यदि आप यह नहीं चाहते हैं, तो float का उपयोग न करें; आप उदा। इसके बजाए पोजिशनिंग का उपयोग करें, ताकि पाठ छवि के दाईं ओर एक ब्लॉक के रूप में दिखाई दे।

दुर्भाग्य से फ़्लोटिंग और अनुरोध का उपयोग करने का कोई तरीका नहीं है उदा। कि अंतिम पंक्ति कम नहीं होना चाहिए। आप अपने अंतिम शब्द को इसके पहले और पिछले शब्द के बीच नो-ब्रेक स्पेस का उपयोग करके स्वयं की रेखा पर दिखाई देने से रोक सकते हैं। it&nbsp;will। और आप इसे संक्षिप्त शब्दों के समूह में बढ़ा सकते हैं। लेकिन इसका मतलब यह होगा कि समूह अपनी खुद की एक रेखा पर दिखाई देता है और पिछली रेखा संगत रूप से कम है (और इसलिए अजीब लग सकती है)।

यदि पाठ थोड़ा सा लंबा है, तो आप इसके प्रतिपादन को लंबवत रूप से कम स्थान लेने के लिए संशोधित कर सकते हैं उदा।

p { margin: 0 } 
p + p { text-indent: 1.3em; } 
+0

आप पूरे पृष्ठ को मैन्युअल रूप से लेआउट किए बिना पोजिशनिंग का उपयोग कैसे करेंगे, यानी काम करें कि कौन से पैराग्राफ छवि के साथ जाना चाहिए, और उन्हें अन्य पैराग्राफ से अलग से बॉक्स करें? पाठ सामग्री में बदलाव के रूप में यह वास्तव में kludgy, और बहुत नाजुक लगता है। –

+0

@ जोशुआ फ्रैंक, स्थिति को वास्तव में ग्रंथों के समूह की आवश्यकता होगी ताकि टेक्स्ट की एक ब्लॉक एक विशिष्ट छवि के दाईं ओर दिखाई दे। यदि आप बाईं तरफ चलने वाली छवियों के साथ स्वतंत्र रूप से बहते हुए पाठ चाहते हैं, तो मुझे डर है कि आप –

संबंधित मुद्दे