केवल एक सीमा पर रूपरेखा


86

एक HTML तत्व में एक इनसेट बॉर्डर कैसे लागू करें , लेकिन केवल इसके एक तरफ। अब तक, मैं ऐसा करने के लिए एक छवि का उपयोग कर रहा हूं (GIF / PNG) जिसे मैं तब एक पृष्ठभूमि के रूप में उपयोग करूंगा और इसे (रिपीट-एक्स) को स्ट्रेच करूंगा और अपने ब्लॉक के शीर्ष से थोड़ी दूर की स्थिति में लाऊंगा। हाल ही में, मैंने रूपरेखा सीएसएस संपत्ति की खोज की , जो बहुत अच्छा है! लेकिन लगता है कि पूरे ब्लॉक को घेरे में है ... क्या यह संभवत: इस रूपरेखा संपत्ति का उपयोग केवल एक सीमा पर करने के लिए है? इसके अलावा, यदि नहीं, तो क्या आपके पास कोई सीएसएस ट्रिक है जो पृष्ठभूमि छवि को बदल सकती है? (ताकि मैं सीएसएस, आदि का उपयोग करके बाद में रूपरेखा के रंगों को निजीकृत कर सकूं)। अग्रिम में धन्यवाद!

यहां एक ऐसी छवि है जो हासिल करने की कोशिश कर रहा है: http://exiledesigns.com/stack.jpg


7
आपका लिंक मर चुका है। आप चित्र उपकरण का उपयोग करके छवि को सीधे प्रश्न में पेस्ट कर सकते हैं।
toddmo

जवाबों:


46

रूपरेखा वास्तव में पूरे तत्व पर लागू होती है

अब जब मैं आपकी छवि देख रहा हूं, तो इसे कैसे प्राप्त किया जाए।

.element {
  padding: 5px 0;
  background: #CCC;
}
.element:before {
  content: "\a0";
  display: block;
  padding: 2px 0;
  line-height: 1px;
  border-top: 1px dashed #000; 
}
.element p {
  padding: 0 10px;
}
<div class="element">
  <p>Some content comes here...</p>
</div>

(या बाहरी डेमो देखें )

सभी आकार और रंग बस प्लेसहोल्डर हैं, आप इसे सटीक वांछित परिणाम से मिलान करने के लिए बदल सकते हैं।

महत्वपूर्ण नोट : -इस काम के लिए .ment होना चाहिए display:block;( डिवॉल्ट के लिए डिफ़ॉल्ट)। यदि ऐसा नहीं है, तो कृपया अपना पूर्ण कोड प्रदान करें, ताकि मैं एक विशिष्ट उत्तर को विस्तृत कर सकूं।


नमस्ते जियोना, मैंने इसे और अधिक स्पष्ट करने के लिए अपने प्रश्न में एक छवि जोड़ी है: मुझे अपने ब्लॉक और मेरी सीमा की सीमाओं के बीच में जगह की आवश्यकता है।
कॉरिनेन

धन्यवाद @GionaF, लेकिन ऐसा लगता है कि सीमा अभी भी 'ब्लॉक' से ऊपर है और 'अंदर' नहीं है। (what is \ a0? ब्लॉक बनाने के लिए बस यादृच्छिक सामग्री?) exiledesigns.com/stack2.jpg (मैंने पैडिंग के 5px के साथ कोशिश की, लेकिन कुछ भी नहीं बदला)
Corinne

1
@DominicTobias मैं वास्तव में याद नहीं कर सकता ;-)
Giona

1
संदर्भ के लिए, \a0एक गैर-ब्रेकिंग स्पेस है।

1
मेरे उपयोग के मामले के लिए, इसे लिया और थोड़ा संशोधित किया। तत्व के साथ शीर्ष पर पूर्ण स्थिति और 100% की चौड़ाई जोड़ने की आवश्यकता है: छद्म वर्ग से पहले, और तत्व के सापेक्ष स्थिति, यदि किसी और के पास एक ही मुद्दा है।
josh1978

130

आप box-shadowएक तरफ एक रूपरेखा बनाने के लिए उपयोग कर सकते हैं । जैसे outline, box-shadowबॉक्स मॉडल का आकार नहीं बदलता है।

यह शीर्ष पर एक पंक्ति डालता है:

box-shadow: 0 -1px 0 #000;

मैंने एक jsFiddle बनाया, जहां आप इसे कार्रवाई में देख सकते हैं।


इनसेट

एक के लिए इनसेट सीमा, का उपयोग इनसेट कीवर्ड। यह शीर्ष पर एक इनसेट लाइन डालता है:

box-shadow: 0 1px 0 #000 inset;

अल्पविराम से अलग किए गए कथनों का उपयोग करके कई पंक्तियों को जोड़ा जा सकता है। यह शीर्ष और बाईं ओर एक इनसेट लाइन डालता है:

box-shadow: 0 1px 0 #000 inset,
            1px 0 0 #000 inset;

कैसे box-shadowकाम करता है, इस बारे में अधिक जानकारी के लिए एमडीएन पृष्ठ देखें


1
मुझे यह रचनात्मक दृष्टिकोण पसंद है, साझा करने के लिए धन्यवाद!
एनपीसी

आपने एक इनसेट बॉर्डर नहीं बनाया और आप बॉक्स-शैडो के लिए सिंटैक्स की व्याख्या नहीं करते हैं। धन्यवाद।
टोड्डो

यह एक सीमा है, अगर कस्टम शैली सीमा की जरूरत है!
एंड्रीस


1

मुझे पता है यह पुराना है। लेकिन हाँ। मैं जियोना जवाब की तुलना में बहुत छोटा समाधान पसंद करता हूं

[contenteditable] {
    border-bottom: 1px solid transparent;
    &:focus {outline: none; border-bottom: 1px dashed #000;}
}

0

मैं अपने इनपुट क्षेत्र को एक सीमा देना पसंद करता हूं, फोकस पर रूपरेखा को हटा दें, और इसके बजाय सीमा को "रेखांकित" करें:

input {
  border: 1px solid grey;

  &:focus {
    outline: none;
    border-left: 1px solid violet;
  }
 }

आप इसे पारदर्शी सीमा के साथ भी कर सकते हैं:

input {
  border: 1px solid transparent;

  &:focus {
    outline: none;
    border-left: 1px solid violet;
  }
 }

-1

HTML / CSS के बारे में महान बात यह है कि समान प्रभाव को प्राप्त करने के लिए आमतौर पर एक से अधिक तरीके हैं। यहाँ एक और उपाय है जो आप चाहते हैं:

<nav id="menu1">
    <ul>
        <li><a href="#">Menu Link 1</a></li>
        <li><a href="#">Menu Link 2</a></li>
    </ul>
</nav>

nav {
    background:#666;
    margin:1em;
    padding:.5em 0;
}
nav ul {
    border-top:1px dashed #fff;
    list-style:none;
    padding:.5em;
}
nav ul li {
    display:inline-block;
}
nav ul li a {
    color:#fff;
}

http://jsfiddle.net/10basetom/uCX3G/1/


-2

केवल एक तरफ outlineअभ्यस्त काम आप उपयोग कर सकते हैंborder-left/right/top/bottom

अगर मैं ठीक से अपनी टिप्पणी कर रहा हूँ

यहाँ छवि विवरण दर्ज करें


2
बॉर्डर-लेफ्ट / राइट / इनसेट कैसे बनाएं? उदाहरण के लिए, ब्लॉक बॉर्डर से 3 पिक्सेल दूर लेकिन अंदर ?
कोरिन

@CorinneStoppelli आप समझा सकते हैं?
Database_Query

@Database_Query, मुझे लगता है कि आप रूपरेखा उचित (या समान) का उपयोग करने से चूक गए, जिसका अर्थ है कि वह div में अधिक वजन / ऊंचाई जोड़ना नहीं चाहता है। बॉर्डर प्रॉपर्टी वास्तव में जोड़ती है, लेकिन इसकी रूपरेखा नहीं है। बॉक्स-शैडो विकल्प, एक बेहतर विकल्प प्रतीत होता है, भले ही आपको इसके विकल्पों के साथ थोड़ा सा खेलने की आवश्यकता हो।
xarlymg89 17
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.