का उपयोग कर एक लचीला, अंतरिक्ष भरने वाला मधुमक्खी बनाना, मैं जिस नेटवर्क पर काम कर रहा हूं उसके लिए मैं कुछ प्रकार का ताप मानचित्र बनाने की कोशिश कर रहा हूं। मैं इसके लिए एक मधुमक्खी का उपयोग करना चाहता था क्योंकि यह फैंसी दिखता है और मुझे महान अंतरिक्ष उपयोग देता है।सीएसएस
यदि यह वेबसाइट मिली है तो मुझे पता चला कि शुद्ध सीएसएस के साथ हेक्सगोन का उपयोग कैसे किया जाए। लेकिन यह भारी निर्भर पंक्तियों और ऑफसेट्स था। मेरा पूरा यूआई नॉकआउट जेएस संचालित है और किसी भी समय नेटवर्क पर गतिशील संख्या में पीसी है। (ज्यादातर डॉकर कंटेनर ऊपर या नीचे जा रहे हैं)।
क्लस्टर 1 और एन + 1 नोड्स के बीच भिन्न हो सकते हैं।
मैंने इस वेबसाइट को देखा: CSS Hexagon और हेक्सगोन प्रबंधित करने के लिए कई समाधान पाए गए लेकिन उनमें से सभी वास्तव में उनके गतिशील उपयोग में सीमित हैं।
इस उद्देश्य कोड है:
<div class="panel-body>
{{noescape "<!-- ko foreach: { data: vm.dash().nodes, as: 'node' } -->" }}
<span class="flex-span" data-bind="attr: { 'id': node.id }, css: { up: node.Status == 2, down: node.Status != 2 }">⬢</span>
{{noescape "<!-- /ko -->"}}
</div>
के आधार पर है कि यह षट्भुज एक रंग है कि/नीचे
अप का संकेत होगा मैं अपने flexbox विचार के साथ एक गैर नॉकआउट बेला ऊपर मार पड़ी किया है देना होगा , लेकिन मैं वास्तव में flexbox समझ में नहीं आता है कि अच्छी तरह से तो यह स्पष्ट रूप से काम नहीं कर रहा: Fiddle
#container {
max-width:400px;
max-height:400px;
}
.hex:before {
content: " ";
width: 0; height: 0;
border-bottom: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
position: absolute;
top: -30px;
flex-shrink: 1;
flex-grow:1;
flex-basis: 130px;
}
.hex {
margin-top: 30px;
width: 104px;
height: 60px;
background-color: #6C6;
position: relative;
float:left;
margin-bottom:30px;
flex-shrink: 1;
flex-grow:1;
flex-basis: 130px;
}
.hex:after {
content: "";
width: 0;
position: absolute;
bottom: -30px;
border-top: 30px solid #6C6;
border-left: 52px solid transparent;
border-right: 52px solid transparent;
flex-shrink: 1;
flex-grow:1;
flex-basis: 130px;
}
<div id="container">
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
<div class=hex></div>
</div>
समस्याओं मैं में चल रहा हूँ कर रहे हैं:
- मैं इन divs कैसे पैमाने करते गतिशील संख्या की परवाह किए बिना, और अधिकतम अंतरिक्ष कब्जे।
- मैं यह सुनिश्चित करने के लिए शुद्ध सीएसएस समाधान का उपयोग कैसे करूं कि सभी "पंक्तियां" आधे हेक्सागोन से ऑफसेट हो जाएं।
!! अद्यतन करें !!
तो मैं पूर्व निर्धारित पंक्तियों की अवधारणा को जोड़ दिया है: fiddle मैं अभी भी एक तरह से पंक्ति ऑफसेट बनाने के लिए की तलाश में हूँ "हेक्स" वर्ग चौड़ाई पर निर्भर हैं। और तत्वों की मात्रा के साथ हेक्स वर्ग पैमाने है। लेकिन मुझे लगता है कि ग्रिड अब वास्तव में अच्छा दिखता है।
आदर्श मैं की तरह :: भी लाइन कुछ का उपयोग करना चाहते, लेकिन मैं केवल मिल सकता है :: पहली पंक्ति hexagons के लिए ऑफसेट करने के लिए। – Puzzle84
यदि आप पहले से ही नॉकआउट का उपयोग कर रहे हैं तो आपको शुद्ध सीएसएस समाधान की आवश्यकता क्यों है? मैं नॉकआउट घटक बनाने और आपके सीएसएस विशेषताओं को गणना करने वाले गुणों को बाध्य करने की अनुशंसा करता हूं जो नोड्स की संख्या के आधार पर आपके स्केलिंग की गणना करते हैं। –
कोई वास्तविक कारण, मैं सिर्फ सीएसएस एक बहुत ui लोडिंग समय के लिए अच्छे से किया जा रहा कल्पना की। और यदि आपका यूई उत्तरदायी है तो आप यहां तक कि विषम रेखा तर्क करने के बारे में कैसे जाएंगे? – Puzzle84