2010-09-14 6 views
12

मैं एक सीएसएस सीमा पर पैडिंग रखना चाहता हूं। इसे किनारे से दूर एक div के अंदर खींचें। क्या यह सीएसएस का उपयोग कर संभव है (सीएसएस 3 ठीक है, वेबकिट)।div सीमा पर पैडिंग

यहां डिज़ाइन है।

Border Example

मैं एक div के अंदर एक div रखकर ऐसा किया, तो आंतरिक div करने के लिए एक सीमा दे। मैं मार्कअप को यथार्थ के रूप में पतला बनाना चाहता हूं इसलिए यदि मैं सकारात्मक हो तो केवल एक div का उपयोग करना चाहता हूं।

धन्यवाद।

उत्तर

19

आप सीएसएस रूपरेखा संपत्ति के साथ ऐसा करने में सक्षम होना चाहिए:

<style> 
.outer { 
     outline: 2px solid #CCC; 
     border: 1px solid #999; 
     background-color: #999; 
     } 
</style> 

<div class="outer"> 
example 
</div> 
+0

बिल्कुल सही। मैं सोच रहा था कि एक div पर डबल सीमा लगाने का एक तरीका था। आपकी मदद के लिए धन्यवाद एडी! – floatleft

0

नहीं, यह संभव नहीं है। पैडिंग, मार्जिन और सीमा तत्वों के सभी हिस्सों हैं, आप एक सीमा पैडिंग या सीमा को मार्जिन नहीं दे सकते हैं।

हो सकता है कि यदि आप जो कुछ करने का प्रयास कर रहे हैं उसका एक उदाहरण पोस्ट करते हैं तो हम वैकल्पिक समाधान के साथ आ सकते हैं?

-update- अपना उदाहरण देखकर मुझे डर है कि यह अभी भी संभव नहीं है, कम से कम सिर्फ एक div के साथ नहीं। मैं divitis के प्रशंसक नहीं हूँ, लेकिन अतिरिक्त div शायद इस मामले में सबसे अच्छा विकल्प है।

0

सीमा के चारों ओर पैडिंग (जो इसे किनारे से अलग करेगा) को 'मार्जिन' कहा जाता है: अधिक जानकारी के लिए, Box model देखें।

+0

लेकिन वह 'div के अंदर' सीमा को नहीं खींचता है, यानी div का पृष्ठभूमि रंग बी नहीं होगा ई सीमा के बाहर दिखाया गया। यकीन नहीं है कि ओपी हालांकि यही चाहता है। –

+0

क्या आप एक div को मार्जिन रंग दे सकते हैं? – floatleft

+0

@ चाड मुझे ऐसा नहीं लगता ... अच्छा, आप पृष्ठभूमि रंग निर्दिष्ट कर सकते हैं: मार्जिन रंग पृष्ठभूमि रंग है। – ChrisW

1

दुर्भाग्य से, एक और div जोड़ने के बिना, मुझे नहीं लगता कि आप इसे केवल सीएसएस के साथ कर सकते हैं।

आपके डिजाइन को जितना अधिक जटिल हो जाता है, उतना अधिक आपको अतिरिक्त HTML टैग की आवश्यकता होगी।

आपका अन्य (भी महान नहीं) विकल्प एक छवि पृष्ठभूमि है, या यदि यह किसी भी तरह से आपको बेहतर महसूस करता है, तो आप JQuery के साथ तत्व क्लाइंट पक्ष जोड़ सकते हैं, जिससे आपकी सर्वर साइड फाइलों की "शुद्धता" को बनाए रखा जा सके।

शुभकामनाएं।

1

आप अपनी इच्छित सीमाओं के साथ आंतरिक div बनाकर और एक डिस्प्ले के साथ बाहरी div बनाकर ऐसा कर सकते हैं: तालिका। कुछ इस तरह:

<style> 
    .outer { 
     background: #ccc; 
     display: table; 
     width: 400px; 
    } 

    .inner { 
     border: 2px dashed #999; 
     height: 50px; 
     margin: 5px; 
    } 

</style> 

<div class="outer"> 

<div class="inner"> 
</div> 

</div> 
16
सीमाओं के बजाय

, आप रूपरेखा संपत्ति का उपयोग कर सकते हैं:

div{ 
height:300px; 
width:500px; 
background-color:lightblue; 
outline:dashed; 
outline-offset:-10px;  
} 

http://jsfiddle.net/H7KdA/

+3

यह निश्चित रूप से काम करता है, और ओपी की समस्या हल करता है, लेकिन ध्यान दें कि यह केवल तभी काम करता है जब आप पूरे तत्व पर सीमा लागू करना चाहते हैं - इसका उपयोग एक किनारे पर नहीं किया जा सकता है। यानी कोई रूपरेखा-शीर्ष, रूपरेखा-नीचे, आदि नहीं है .. इस प्रकार इसे सामान्य रूप से _instead of_ सीमाओं का उपयोग नहीं किया जा सकता है, लेकिन यह इस उपयोग के मामले के लिए ठीक काम करता है। –