আমি জানি এই প্রশ্নটি পুরানো, তবে আমি খুঁজে পেলাম যে আমার জন্য সঠিক কাজটি।
আমি এই সিএসএসটি ডিভের সাথে যুক্ত করতে চাই যা কেন্দ্র করতে চাই:
div:before {
content: "";
display: inline-block;
height: 100%;
vertical-align: middle;
}
এটি প্রতিবার কাজ করে এবং এটি পরিষ্কার।
সম্পাদনা করুন: কেবলমাত্র সমাপ্তির স্বার্থে, আমি স্ক্যাস ব্যবহার করি এবং আমার একটি সহজ মিশ্রণ রয়েছে যা আমি প্রতিটি অভিভাবকের উপরে অন্তর্ভুক্ত করি যারা প্রত্যক্ষভাবে আমার সন্তানের যে অংশগুলি উল্লম্বভাবে কেন্দ্রীভূত করতে চান:
@mixin vertical-align($align: middle) {
&:before {
content: "";
display: inline-block;
height: 100%;
vertical-align: $align;
font-size: 0;
}
& > * {
vertical-align: $align;
font-size: 14px;
}
}
সম্পূর্ণ ব্যাখ্যা:
div:beforeডিভের অভ্যন্তরে কোনও উপাদান যুক্ত করবে তবে এর কোনও সন্তানের আগে। ব্যবহার করার সময় :beforeবা :afterআমাদের অবশ্যই একটি content:ঘোষণা ব্যবহার করতে হবে অন্যথায় কিছুই হবে না, তবে আমাদের উদ্দেশ্যে, সামগ্রীটি খালি থাকতে পারে। তারপরে আমরা উপাদানটিকে তার পিতামাতার মতো লম্বা হতে বলি, যতক্ষণ না তার পিতামাতার উচ্চতা সংজ্ঞায়িত হয় এবং এই উপাদানটি অন্তত ইনলাইন-ব্লক থাকে। ভিন্নভাবে কাজ করে তার vertical-alignবিপরীতে পিতামাতার সাথে সম্পর্কিত আত্মের উল্লম্ব অবস্থানটি সংজ্ঞায়িত করে text-align।
@mixinঘোষণা Sass ব্যবহারকারীদের জন্য এবং এটি এই মত ব্যবহার করা হবে:
div {
@include vertical-align(middle)
}