আদেশযুক্ত তালিকায় সিএসএস সহ 1.1, 1.2, 1.3 (কেবল 1, 2, 3, ... এর পরিবর্তে) এর মতো ফলাফল পাওয়া যাবে? list-style-type:decimal
এখনও অবধি ব্যবহার করে ১.১, ১.২ নয়, কেবল 1, 2, 3 উত্পাদন করেছে।
আদেশযুক্ত তালিকায় সিএসএস সহ 1.1, 1.2, 1.3 (কেবল 1, 2, 3, ... এর পরিবর্তে) এর মতো ফলাফল পাওয়া যাবে? list-style-type:decimal
এখনও অবধি ব্যবহার করে ১.১, ১.২ নয়, কেবল 1, 2, 3 উত্পাদন করেছে।
উত্তর:
এটি করার জন্য আপনি কাউন্টারগুলি ব্যবহার করতে পারেন :
নিম্নলিখিত স্টাইল শিট সংখ্যাগুলি তালিকাভুক্ত আইটেমগুলিকে "1", "1.1", "1.1.1", ইত্যাদি হিসাবে আটকায়
OL { counter-reset: item } LI { display: block } LI:before { content: counters(item, ".") " "; counter-increment: item }
উদাহরণ
ol { counter-reset: item }
li{ display: block }
li:before { content: counters(item, ".") " "; counter-increment: item }
<ol>
<li>li element
<ol>
<li>sub li element</li>
<li>sub li element</li>
<li>sub li element</li>
</ol>
</li>
<li>li element</li>
<li>li element
<ol>
<li>sub li element</li>
<li>sub li element</li>
<li>sub li element</li>
</ol>
</li>
</ol>
দেখুন নেস্টেড কাউন্টারে এবং সুযোগ আরও তথ্যের জন্য।
li:before
: content: counters(item, ".")". ";
এই পৃষ্ঠার কোনও সমাধানই সমস্ত স্তরের এবং দীর্ঘ (মোড়ানো) অনুচ্ছেদের জন্য সঠিক এবং সর্বজনীনভাবে কাজ করে না। চিহ্নিতকরণের পরিবর্তনশীল আকারের কারণে (1., 1.2, 1.10, 1.10.5,…) কারণে একটি সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন অর্জন করা সত্যই জটিল; এটি কেবল "নকল" হতে পারে না, এমনকি প্রতিটি সম্ভাব্য ইনডেন্টেশন স্তরের জন্য প্রাক্পম্পিউটেড মার্জিন / প্যাডিংয়ের সাথেও নয়।
আমি অবশেষে এমন একটি সমাধান বের করেছিলাম যা আসলে কাজ করে এবং কোনও জাভাস্ক্রিপ্টের প্রয়োজন নেই।
এটি ফায়ারফক্স 32, ক্রোমিয়াম 37, আই 9 এবং অ্যান্ড্রয়েড ব্রাউজারে পরীক্ষিত। আইই 7 এবং এর আগের কাজ করে না।
সিএসএস:
ol {
list-style-type: none;
counter-reset: item;
margin: 0;
padding: 0;
}
ol > li {
display: table;
counter-increment: item;
margin-bottom: 0.6em;
}
ol > li:before {
content: counters(item, ".") ". ";
display: table-cell;
padding-right: 0.6em;
}
li ol > li {
margin: 0;
}
li ol > li:before {
content: counters(item, ".") " ";
}
নির্বাচিত উত্তরটি দুর্দান্ত শুরু, তবে এটি প্রয়োজনীয়ভাবে list-style-position: inside;
তালিকার আইটেমগুলিতে স্টাইলিংকে বাধ্য করে, মোড়ানো পাঠ্যকে শক্ত করে পড়া। এখানে একটি সাধারণ কাজ রয়েছে যা সংখ্যা এবং পাঠ্যের মধ্যে মার্জিনের উপরে নিয়ন্ত্রণও দেয় এবং ডিফল্ট আচরণ অনুসারে সংখ্যাটিকে ডান-সারিবদ্ধ করে।
ol {
counter-reset: item;
}
ol li {
display: block;
position: relative;
}
ol li:before {
content: counters(item, ".")".";
counter-increment: item;
position: absolute;
margin-right: 100%;
right: 10px; /* space between number and text */
}
জেএসফিডাল: http://jsfiddle.net/3J4Bu/
ol
আচরণ অনুসারে কেবল একটি সময়সীমা যুক্ত করে। সম্পত্তি "."
থেকে শেষটি মুছে ফেলাতে এটি সহজেই সরানো যেতে পারে content
তবে এটি আমার কাছে কিছুটা বিশ্রী দেখায়।
এখানে পোস্ট করা সমাধানগুলি আমার পক্ষে ভাল কাজ করে না, তাই আমি এই প্রশ্নের এবং নিম্নলিখিত প্রশ্নের একটি মিশ্রণ করেছি: এইচটিএমএল এ মাল্টি-লেভেল অর্ডারযুক্ত তালিকা তৈরি করা সম্ভব?
/* Numbered lists like 1, 1.1, 2.2.1... */
ol li {display:block;} /* hide original list counter */
ol > li:first-child {counter-reset: item;} /* reset counter */
ol > li {counter-increment: item; position: relative;} /* increment counter */
ol > li:before {content:counters(item, ".") ". "; position: absolute; margin-right: 100%; right: 10px;} /* print counter */
ফলাফল:
নোট: স্ক্রিনশট, আপনি সোর্স কোড দেখতে চাই বা যাই হোক না কেন এই পোস্ট থেকে হলে: http://estiloasertivo.blogspot.com.es/2014/08/introduccion-running-lean-y-lean.html
দ্রষ্টব্য: একটি আধুনিক ব্রাউজারে নেস্টেড নম্বর তৈরি করতে CSS ব্যবহার করুন । গৃহীত উত্তর দেখুন। নিম্নলিখিতটি কেবল historicalতিহাসিক স্বার্থের জন্য।counters
যদি ব্রাউজার সমর্থন করে content
এবং counter
,
.foo {
counter-reset: foo;
}
.foo li {
list-style-type: none;
}
.foo li::before {
counter-increment: foo;
content: "1." counter(foo) " ";
}
<ol class="foo">
<li>uno</li>
<li>dos</li>
<li>tres</li>
<li>cuatro</li>
</ol>
.foo > ol > li
।
counters()
ফাংশনের পরিবর্তে উপরের উদাহরণগুলির মতো ফাংশনটি ব্যবহার করুন counter()
।
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="author" content="Sandro Alvares - KingRider">
</head>
<body>
<style type="text/css">
li.title {
font-size: 20px;
font-weight: lighter;
padding: 15px;
counter-increment: ordem;
}
.foo {
counter-reset: foo;
padding-left: 15px;
}
.foo li {
list-style-type: none;
}
.foo li:before {
counter-increment: foo;
content: counter(ordem) "." counter(foo) " ";
}
</style>
<ol>
<li class="title">TITLE ONE</li>
<ol class="foo">
<li>text 1 one</li>
<li>text 1 two</li>
<li>text 1 three</li>
<li>text 1 four</li>
</ol>
<li class="title">TITLE TWO</li>
<ol class="foo">
<li>text 2 one</li>
<li>text 2 two</li>
<li>text 2 three</li>
<li>text 2 four</li>
</ol>
<li class="title">TITLE THREE</li>
<ol class="foo">
<li>text 3 one</li>
<li>text 3 two</li>
<li>text 3 three</li>
<li>text 3 four</li>
</ol>
</ol>
</body>
</html>
আমার দুটি সমস্যা আছে যখন দুটি তালিকা রয়েছে এবং দ্বিতীয়টি ডিআইভির মধ্যে রয়েছে দ্বিতীয় তালিকার শুরুটি 1. থেকে শুরু করা উচিত 2.1 নয়
<ol>
<li>lorem</li>
<li>lorem ipsum</li>
</ol>
<div>
<ol>
<li>lorem (should be 1.)</li>
<li>lorem ipsum ( should be 2.)</li>
</ol>
</div>
http://jsfiddle.net/3J4Bu/364/
সম্পাদনা করুন: আমি এই http://jsfiddle.net/hy5f6161/ দ্বারা সমস্যার সমাধান করেছি
অদূর ভবিষ্যতে আপনি কেবলমাত্র এক লাইনের কোডে অন্যান্য সমাধানের মতো একই ফলাফল অর্জনের জন্য ::marker
পিজিও-এলিমেন্টটি ব্যবহার করতে সক্ষম হতে পারেন ।
চেক করতে ভুলবেন না ব্রাউজার সামঞ্জস্যের ছক হিসাবে এই এখনও একটি পরীক্ষামূলক প্রযুক্তি। সংস্করণ 68 থেকে শুরু করে অ্যান্ড্রয়েডের জন্য কেবল ফায়ারফক্স এবং ফায়ারফক্স লেখার মুহুর্তে এটি সমর্থন করুন।
এখানে একটি স্নিপেট রয়েছে যা সামঞ্জস্যপূর্ণ ব্রাউজারে চেষ্টা করা হলে সঠিকভাবে রেন্ডার হবে:
::marker { content: counters(list-item,'.') ':' }
li { padding-left: 0.5em }
<ol>
<li>li element
<ol>
<li>sub li element</li>
<li>sub li element</li>
<li>sub li element</li>
</ol>
</li>
<li>li element</li>
<li>li element
<ol>
<li>sub li element</li>
<li>sub li element</li>
<li>sub li element</li>
</ol>
</li>
</ol>
আপনি বিষয়টিতে স্ম্যাশিংমাগাজিন করে এই দুর্দান্ত নিবন্ধটিও চেক করতে চাইতে পারেন ।
আমি 12-এ পোস্ট করা সমাধানটিতে এটি যুক্ত করার প্রয়োজন ছিল কারণ আমি আদেশযুক্ত তালিকার মিশ্রণযুক্ত তালিকা এবং আনর্ডারড তালিকার উপাদানগুলির তালিকা ব্যবহার করছিলাম। সামগ্রী: নো-ক্লোজ-কোটটি আমার জানা যুক্ত করার মতো একটি বিজোড় জিনিস বলে মনে হচ্ছে, তবে এটি কার্যকর ...
ol ul li:before {
content: no-close-quote;
counter-increment: none;
display: list-item;
margin-right: 100%;
position: absolute;
right: 10px;
}
নিম্নলিখিত আমার জন্য কাজ করেছে:
ol {
list-style-type: none;
counter-reset: item;
margin: 0;
padding: 0;
}
ol > li {
display: table;
counter-increment: item;
margin-bottom: 0.6em;
}
ol > li:before {
content: counters(item, ".") ") ";
display: table-cell;
padding-right: 0.6em;
}
li ol > li {
margin: 0;
}
li ol > li:before {
content: counters(item, ".") ") ";
}
দেখুন: http://jsfiddle.net/rLebz84u/2/
বা এটি আরও এবং ন্যায়সঙ্গত পাঠ্য সহ একটি http://jsfiddle.net/rLebz84u/3/
আপনি যদি অন্য সিএসএসের চাইল্ড লি লি রিসাইজ করতে চান তবে এটি সঠিক কোড।
<style>
li.title {
font-size: 20px;
counter-increment: ordem;
color:#0080B0;
}
.my_ol_class {
counter-reset: my_ol_class;
padding-left: 30px !important;
}
.my_ol_class li {
display: block;
position: relative;
}
.my_ol_class li:before {
counter-increment: my_ol_class;
content: counter(ordem) "." counter(my_ol_class) " ";
position: absolute;
margin-right: 100%;
right: 10px; /* space between number and text */
}
li.title ol li{
font-size: 15px;
color:#5E5E5E;
}
</style>
এইচটিএমএল ফাইলে।
<ol>
<li class="title"> <p class="page-header list_title">Acceptance of Terms. </p>
<ol class="my_ol_class">
<li>
<p>
my text 1.
</p>
</li>
<li>
<p>
my text 2.
</p>
</li>
</ol>
</li>
</ol>