दिलचस्प पोस्ट
अगर / और फ़ंक्शन के अंदर और बाहर का निर्माण होता है AngularJS – $ नष्ट घटना श्रोताओं को नष्ट करता है? जावा में कौन से आपरेशन परमाणु माना जाता है? जावा में "प्रिंट" के बजाय "printf" का उपयोग करने का एक अच्छा कारण है? आप 12 घंटे AM / PM प्रारूप में जावास्क्रिप्ट डेट टाइम कैसे प्रदर्शित करते हैं? निर्भरता प्रबंधन और मेवेन में निर्भरता के बीच अंतर अनपेक्षित टॉप-ऊपरी अवतार: com.android.dex.DexException: एकाधिक डीएक्स फ़ाइलें परिभाषित करती हैं सरणी के लिए JSON स्ट्रिंग कन्वर्ट करने के लिए अपनी स्वयं की फ़ंक्शन लिखते समय आर की एलीपिसिस सुविधा का उपयोग कैसे करें? जावास्क्रिप्ट समापन से लूप के बाहर चर में प्रवेश करें "यदि" महंगा है? सीएसवी का विभाजन कैसे करें, जिनके कॉलम में हो सकता है, पायथन यूनिट टेस्ट में stdin, files और environment variable input की आपूर्ति कैसे करें? मैं PHP में किसी भी अनुरोध हेडर को कैसे पढ़ सकता हूँ उत्प्रेरक का उद्देश्य। उदाहरण के साथ तैयार करना?

कैसे अपनी सामग्री से बड़ा div नहीं करने के लिए?

मेरे पास एक लेआउट है:

<div> <table> </table> </div> 

मैं div लिए केवल मेरी table बनने के लिए विस्तृत करना चाहता हूं।

वेब के समाधान से एकत्रित समाधान "कैसे अपनी सामग्री से बड़ा div नहीं करने के लिए?"

इसका समाधान display: inline-block करने के लिए आपका div सेट करना display: inline-block

आप एक ब्लॉक तत्व चाहते हैं जिसमें सीएसएस कॉल्स को सिकुड़ते-टू-फिट चौड़ाई है और युक्ति ऐसी चीज़ पाने के लिए एक शानदार तरीका प्रदान नहीं करता है CSS2 में, हटना-से-फिट एक लक्ष्य नहीं है, लेकिन उस स्थिति से निपटने का मतलब है जहां ब्राउज़र "को" पतली हवा से बाहर की चौड़ाई प्राप्त करना है। उन परिस्थितियां हैं:

  • नाव
  • बिल्कुल तैनात तत्व
  • इनलाइन ब्लॉक तत्व
  • टेबल तत्व

जब कोई चौड़ाई निर्दिष्ट नहीं है मैंने सुना है कि वे CSS3 में क्या चाहते हैं इसे जोड़ने के बारे में सोचते हैं। अभी के लिए, ऊपर में से एक के साथ करते हैं।

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

मुझे लगता है कि इसका उपयोग करना

 display: inline-block; 

काम करेगा, हालांकि मैं ब्राउज़र संगतता के बारे में निश्चित नहीं हूँ


एक अन्य समाधान अपने div को दूसरे div में div (यदि आप ब्लॉक व्यवहार को बनाए रखना चाहते हैं):

HTML:

 <div> <div class="yourdiv"> content </div> </div> 

सीएसएस:

 .yourdiv { display: inline; } 

display: inline-block आपके तत्व के लिए एक अतिरिक्त मार्जिन जोड़ता है

मैं यह सिफारिश करेगा:

 #element { display: table; /* IE8+ and all other modern browsers */ } 
 display: -moz-inline-stack; display: inline-block; zoom: 1; *display: inline; 

फू हैक – इनलाइन ब्लॉक स्टाइलिंग के लिए क्रॉस ब्राउज़र समर्थन (2007-11-19) ।

मेरे लिए क्या काम है:

 display: table; 

div ( फ़ायरफ़ॉक्स और Google क्रोम पर परीक्षण)

आप fit-content (CSS3) fit-content कोशिश कर सकते हैं:

 div { width: fit-content; /* To adjust the height as well */ height: fit-content; } 
  • ब्राउज़र समर्थन
  • विशिष्टता

दो बेहतर समाधान हैं

  1. display: inline-block;

    या

  2. display: table;

इन दो display:table; बेहतर है।

display:inline-block; आप अतिरिक्त स्थान तय करने के लिए नकारात्मक मार्जिन पद्धति का उपयोग कर सकते हैं

आपके प्रश्न का उत्तर भविष्य में मेरे दोस्त देता है …

अर्थात् "आंतरिक" नवीनतम CSS3 अपडेट के साथ आ रहा है

 width: intrinsic; 

दुर्भाग्य से आईई इसके पीछे है इसलिए यह अभी तक इसका समर्थन नहीं करता है

इसके बारे में अधिक: सीएसएस आंतरिक और बाहरी आकार देने मॉड्यूल स्तर 3 और मैं उपयोग कर सकते हैं? : आंतरिक और बाहरी नौकरशाही का आकार घटाने

अभी के लिए आपको <span> या <div> सेट से संतुष्ट होना है

 display: inline-block; 
 width:1px; white-space: nowrap; 

मेरे लिए ठीक काम करता है 🙂

यह नहीं पता होगा कि यह किस संदर्भ में होगा, लेकिन मेरा मानना ​​है कि सीएसएस स्टाइल संपत्ति या तो left या right इस प्रभाव का होगा दूसरी ओर, इसके साथ अन्य दुष्प्रभाव भी होंगे, जैसे पाठ को इसके चारों ओर फ़्लोट करने की इजाजत देनी होगी।

अगर मुझे गलत है, तो कृपया मुझे सही करें, मैं 100% निश्चित नहीं हूं, और वर्तमान में यह स्वयं का परीक्षण नहीं कर सकता

सीएसएस 2 संगत समाधान का प्रयोग करना है:

 .my-div { min-width: 100px; } 

आप अपने डिवा में भी फ्लोट कर सकते हैं जो इसे संभवतः जितना छोटा कर देगा, लेकिन आपको एक स्पष्टफ़िक्स का उपयोग करने की आवश्यकता होगी यदि आपके डिवा में कुछ भी अस्थायी है:

 .my-div { float: left; } 

आप इसे केवल display: inline; का उपयोग करके कर सकते display: inline; (या white-space: nowrap; )

मुझे उम्मीद है कि आपको यह काम का लगेगा।

 <table cellpadding="0" cellspacing="0" border="0"> <tr> <td> <div id="content_lalala"> this content inside the div being inside a table, needs no inline properties and the table is the one expanding to the content of this div =) </div> </td> </tr> </table> 

मुझे पता है कि लोग कभी-कभी तालिकाओं पसंद नहीं करते, लेकिन मुझे आपको बताना होगा, मैंने सीएसएस इनलाइन हैक्स की कोशिश की, और वे थोड़े कुछ डिवा में काम कर रहे थे लेकिन दूसरों में ऐसा नहीं था, इसलिए, विस्तार डिवीज को शामिल करने में वास्तव में आसान था एक टेबल … और … इसमें इनलाइन संपत्ति हो सकती है या नहीं और अभी भी तालिका वह है जो सामग्री की कुल चौड़ाई को पकड़ने वाला है। =)

एक कार्यशील डेमो यहां है-

 .floating-box { display:-moz-inline-stack; display: inline-block; width: fit-content; height: fit-content; width: 150px; height: 75px; margin: 10px; border: 3px solid #73AD21; } 
 <h2>The Way is using inline-block</h2> Supporting elements are also added in CSS. <div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> <div class="floating-box">Floating box</div> </div> 

आप inline-block @ user473598 के रूप में उपयोग कर सकते हैं, लेकिन पुराने ब्राउज़रों से सावधान रहें ..

 /* Your're working with */ display: inline-block; /* For IE 7 */ zoom: 1; *display: inline; /* For Mozilla Firefox < 3.0 */ display:-moz-inline-stack; 

मोज़िला इनलाइन-ब्लॉक का समर्थन नहीं करता है, लेकिन उनके पास -moz-inline-stack जो लगभग समान है

inline-block डिस्प्ले विशेषता के आसपास कुछ क्रॉस-ब्राउज़र: https://css-tricks.com/snippets/css/cross-browser-inline-block/

आप इस विशेषता के साथ कुछ परीक्षण देख सकते हैं: https://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/

मेरे CSS3 फ्लेक्सबॉक्स समाधान में दो जायके में: शीर्ष पर एक एक अवधि की तरह बर्ताव करता है और नीचे एक एक div की तरह व्यवहार करता है, आवरण की मदद से सभी चौड़ाई लेता है उनकी कक्षाएं क्रमशः "शीर्ष", "नीचे" और "तंगचाली" हैं

 body { font-family: sans-serif; } .top { display: -webkit-inline-flex; display: inline-flex; } .top, .bottom { background-color: #3F3; border: 2px solid #FA6; } /* bottomwrapper will take the rest of the width */ .bottomwrapper { display: -webkit-flex; display: flex; } table { border-collapse: collapse; } table, th, td { width: 280px; border: 1px solid #666; } th { background-color: #282; color: #FFF; } td { color: #444; } th, td { padding: 0 4px 0 4px; } 
 Is this <div class="top"> <table> <tr> <th>OS</th> <th>Version</th> </tr> <tr> <td>OpenBSD</td> <td>5.7</td> </tr> <tr> <td>Windows</td> <td>Please upgrade to 10!</td> </tr> </table> </div> what you are looking for? <br> Or may be... <div class="bottomwrapper"> <div class="bottom"> <table> <tr> <th>OS</th> <th>Version</th> </tr> <tr> <td>OpenBSD</td> <td>5.7</td> </tr> <tr> <td>Windows</td> <td>Please upgrade to 10!</td> </tr> </table> </div> </div> this is what you are looking for. 

फायरबग के साथ छेड़छाड़ करने पर मुझे संपत्ति के मूल्य -moz-fit-content मिली, जो ओपी के लिए ठीक वही करता है, जो कि अनुपालन के लिए इस्तेमाल किया जा सकता था।

 width: -moz-fit-content; 

यद्यपि यह केवल फ़ायरफ़ॉक्स पर काम करता है, मुझे क्रोम जैसे अन्य ब्राउज़रों के लिए कोई समकक्ष नहीं मिल सका।

 <div class="parentDiv" style="display:inline-block"> // HTML elements </div> 

इससे पैरेंट डिवीप की चौड़ाई सबसे बड़ा तत्व चौड़ाई के समान होगी।

display: inline-block; कोशिश करें display: inline-block; । क्रॉस ब्राउजर संगत होने के लिए कृपया नीचे सीएसएस कोड का इस्तेमाल करें।

 div { display: inline-block; display:-moz-inline-stack; zoom:1; *display:inline; border-style: solid; border-color: #0000ff; } 
 <div> <table> <tr> <td>Column1</td> <td>Column2</td> <td>Column3</td> </tr> </table> </div> 

मैंने इसी तरह की समस्या का समाधान किया है (जहां मैं display: inline-block का उपयोग नहीं करना चाहता था display: inline-block क्योंकि आइटम केंद्रित था), div टैग के अंदर एक span टैग जोड़कर और सीएसएस फॉर्मेटिंग को बाहरी div टैग से नए इनर तक ले जाया जा रहा है span टैग बस एक और वैकल्पिक विचार के रूप में इसे बाहर फेंक देना यदि display: inline block आपके लिए उपयुक्त उत्तर नहीं है।

मैंने div.classname{display:table-cell;} और यह काम किया!

मैं सिर्फ padding: -whateverYouWantpx; सेट करूँगा padding: -whateverYouWantpx;

 div{ width:auto; height:auto; } 

हम div तत्व पर दो तरीकों में से किसी का उपयोग कर सकते हैं:

 display: table; 

या,

 display: inline-block; 

मैं display: table; का उपयोग करना पसंद करता हूं display: table; , क्योंकि यह संभालता है, अपने आप सभी अतिरिक्त रिक्त स्थान जबकि display: inline-block कुछ अतिरिक्त जगह फिक्सिंग की आवश्यकता होती है।

संशोधित (अगर आपके पास कई बच्चे हैं तो काम करता है): आप jQuery का उपयोग कर सकते हैं (JSFiddle लिंक देखें)

 var d= $('div'); var w; d.children().each(function(){ w = w + $(this).outerWidth(); d.css('width', w + 'px') }); 

JQuery को शामिल करने के लिए मत भूलना …

यहां जेएसएफडियल देखें

यदि आपके पास कंटेनरों को तोड़ने वाली लाइनें हैं, तो एक अच्छा सीएसएस समाधान की तलाश में घंटों के बाद और कोई भी ढूंढने के बाद, मैं अब इसके बजाय jQuery का उपयोग करता हूं :

 $('button').click(function(){ $('nav ul').each(function(){ $parent = $(this).parent(); $parent.width( $(this).width() ); }); }); 
 nav { display: inline-block; text-align: left; /* doesn't do anything, unlike some might guess */ } ul { display: inline; } /* needed style */ ul { padding: 0; } body { width: 420px; } /* just style */ body { background: #ddd; margin: 1em auto; } button { display: block; } nav { background: #bbb; margin: 1rem auto; padding: 0.5rem; } li { display: inline-block; width: 40px; height: 20px; border: solid thin #777; margin: 4px; background: #999; text-align: center; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button>fix</button> <nav> <ul> <li>3</li> <li>.</li> <li>1</li> <li>4</li> </ul> </nav> <nav> <ul> <li>3</li> <li>.</li> <li>1</li> <li>4</li> <li>1</li> <li>5</li> <li>9</li> <li>2</li> <li>6</li> <li>5</li> <li>3</li> <li>5</li> </ul> </nav> 

ठीक है, कई मामलों में आपको कुछ भी करने की ज़रूरत नहीं है जैसा कि डिफ़ॉल्ट डिवा के रूप में height और width ऑटो के रूप में है, लेकिन अगर यह आपके मामला नहीं है, तो inline-block डिस्प्ले को लागू करने के लिए आपके लिए काम करने वाला है … मैं जो कोड बना रहा हूँ देखो आपके लिए और ऐसा करना है जो आप चाहते हैं:

 div { display: inline-block; } 
 <div> <table> <tr> <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td> <td>Nunc auctor aliquam est ac viverra. Sed enim nisi, feugiat sed accumsan eu, convallis eget felis. Pellentesque consequat eu leo nec pharetra. Aenean interdum enim dapibus diam.</td> <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ultrices feugiat massa sed laoreet. Maecenas et magna egestas, facilisis purus quis, vestibulum nibh.</td> </tr> </table> </div> 

केवल

 <div style="display: inline;"> <table> </table> </div> 

व्यक्तित्व, मैं बस ऐसा करता हूं:

HTML कोड:

 <div> <table> </table> </div> 

सीएसएस कोड:

 div { display: inline; } 

यदि आप अपने डिवा पर एक फ्लोट लागू करते हैं, तो यह बहुत काम करता है लेकिन जाहिर है, आपको अगले एचटीएमएल तत्व पर एक "स्पष्ट दोनों" सीएसएस नियम लागू करना होगा।