2013-08-26 6 views
6

मैं एक HTML तालिका बनाना चाहता हूं जहां प्रत्येक सेल क्लिक करने योग्य हो, और सेल पर क्लिक करने से कक्ष के भीतर एकल div पर सीमा हो जाती है। मैं चाहता हूं कि div की सीमा पूरी तरह से td की मौजूदा सीमाओं के भीतर मौजूद है जिसमें तालिका या इसकी कोशिकाओं का आकार बदलने के बिना यह शामिल है। मैं इसे सही तरीके से नहीं कर सकता।अंदरूनी सीमा बनाने के लिए बॉक्स आकार का उपयोग करना

यह previous question एक ही मुद्दे को संबोधित करता है और बॉक्स आकार के सीएसएस विकल्पों के बारे में कुछ लेखों को इंगित करता है। मेरे पास एक पहेली है जहां मैंने सफलता के बिना इसे लागू करने की कोशिश की: http://jsfiddle.net/YsAGh/3/

* { 
    box-sizing:border-box; 
    -moz-box-sizing:border-box; 
    -webkit-box-sizing:border-box; 
} 


<table> 
    <tr> 
    <td><div>1</div></td> 
    <td><div>2</div></td> 
    <td><div>3</div></td> 
    </tr> 
    .... 
</table> 

वर्तमान में यह क्या होता है। div की सीमा को समायोजित करने के लिए सीमा बढ़ने के लिए सीमा td है।

I want the red border to appear without resizing the td

मैं इसे कैसे युक्त तालिका को प्रभावित किए बिना div करने के लिए सीमा जोड़ सकते हैं?

+3

आप बस एक सीमा '.unselected' वर्ग के लिए (यानी' .unselected जोड़े जा सके देखें {बॉर्डर: 2px ठोस पीला;} 'मैं के बाद से जवाब के रूप में डाल नहीं कर रहा हूँ। यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है, केवल एक हैक समाधान प्रदान करता है। – kunalbhat

+0

हम्म, मैं क्लिक फ़ंक्शन में सेल का आकार बदलने के लिए jQuery का उपयोग करने का लुत्फ उठाऊंगा, हालांकि इसे भी एक हैक भी माना जा सकता है ... हालांकि @ कुनलबाट उत्तर एक और अधिक सुरुचिपूर्ण समाधान होगा, और यह बहुत आसान है: http://jsfiddle.net/YsAGh/4/ – ChrisW

+0

यह समस्या को ठीक नहीं करेगा, लेकिन यह महत्वपूर्ण है कि आपने अपरिवर्तित नियम को अंतिम रूप दिया e.g.' * {- वेबकिट बॉक्स-आकार: सीमा बॉक्स; -moz बॉक्स-आकार: सीमा बॉक्स; बॉक्स-आकार: सीमा बॉक्स;} '। इस तरह, ब्राउज़र पहले/सही अपरिक्स्ड संस्करण का उपयोग करने का प्रयास करेगा और फिर लागू नहीं होने पर, प्रीफिक्स्ड/विकास संस्करण के तहत वापस आ जाएगा। – tw16

उत्तर

1

मेरे JSFiddle पर देखें।

आप अपने कोशिकाओं को एक चौड़ाई/ऊंचाई प्रदान करने की आवश्यकता:

td { 
    // ... 
    width:33.3%; 
    height:33.3%; 
} 
1

कैसे एक इनसेट बॉक्स छाया का उपयोग कर के बारे में?

.selected { 
    box-shadow: inset 0px 0px 0px 2px red; 
} 
+1

सावधान रहें, यह संपत्ति [आईई 8 के साथ संगत नहीं है) (http://caniuse.com/css-boxshadow) (और विंडोज एक्सपी) – glautrou

+0

आईई 8 निश्चित रूप से अनुकूलता के लायक नहीं है अकेले कुछ भी फैंसी – iConnor

+0

सौभाग्य से यह एक है -हाउस ऐप और हम आईई 9 + या सबसे हालिया फ़ायरफ़ॉक्स या क्रोम ग्रहण कर सकते हैं। –

1

ठीक है, के बाद से मैंने देखा है एक टिप्पणी में मेरी प्रतिक्रिया है, यहाँ के लिए कुछ समर्थन यह एक जवाब के रूप में :)

Presize .unselected राज्य के लिए एक पीले रंग की 'छुपा' बॉर्डर जोड़कर अपने सेल :

सीएसएस

.unselected { 
    background-color: yellow; 
    border: 2px solid yellow; // Presize with this yellow border 
} 

div { 
    .. 
    line-height: 1; // Add line-height to regulate size (optional) 
} 

Codepen example.

0

बढ़ती ऊंचाई को रोकने के लिए selected में कोशिकाओं की चौड़ाई और padding को ठीक करने के लिए table-layout का उपयोग करना।

table { 
    table-layout: fixed; 
} 
.selected { 
    padding: 1px; 
} 

JSFiddle

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