অটো মার্জিনগুলি পৃষ্ঠাতে চিত্রকে কেন্দ্র করে না


98

ইন এই উদাহরণে ইমেজ কেন্দ্রিক নয়। কেন? আমার ব্রাউজারটি উইন্ডোজ on এ গুগল ক্রোম ভি 10, আইই নয়।

<img src="/img/logo.png" style="margin:0px auto;"/>

স্টাইলের ক্লাস পরীক্ষা করে দেখলাম যে এটি মার্জিনটি কাজ করছে না : 0 অটো; কিছু পরীক্ষার পরে জানতে পেরে যে আপনি যে উপাদানটির সাথে ক্লাসের নাম যুক্ত করছেন তার একটি উপাদান হিসাবে একই নাম থাকলে এটি কাজ করবে না।
লস্টলাইট

উত্তর:


219

যোগ করুন display:block;এবং এটি কাজ করবে চিত্রগুলি ডিফল্টরূপে ইনলাইন থাকে

স্পষ্ট করার জন্য, কোনও blockউপাদানের জন্য ডিফল্ট প্রস্থটি হ'ল auto, যা অবশ্যই উপস্থিত উপাদানটির সম্পূর্ণ উপলব্ধ প্রস্থ পূরণ করে।

মার্জিনটি সেট করে auto, ব্রাউজারটি বাকি অর্ধেক স্থানকে margin-leftঅর্ধেক এবং অন্য অর্ধেককে নির্ধারিত করে margin-right


12
সঠিক হওয়ার জন্য +1। margin:autoপ্রবাহের কোনও আইটেমকে কেন্দ্র করে রাখার জন্য কী কী প্রয়োজন তা যদি আপনি বিস্তারিতভাবে বর্ণনা করেন তবে দুর্দান্ত উত্তর দেবেন । ( display:blockবা display:table, position:staticবা position:relative, ইত্যাদি)
17:56 এ Phogz

4
@ ফ্রোগজ সম্মত হয়েছেন; কিছু ব্যাখ্যা যুক্ত।
রস

15
যারা এটি পড়ছেন তারা "ফ্লোট" যুক্ত করাও কার্যকর মনে করতে পারেন কারণ অন্য কোনও ধরণের ফ্লোট আপনার মার্জিন অটোকে আবদ্ধ করবে না।
কোড হুইস্পেরার

তবে এটি এখনও কেন্দ্রিক নয়। এটি কেবল অনুভূমিকভাবে কেন্দ্রিক। আমি এটিকে উল্লম্বভাবে কেন্দ্র করতে চাই, তবে আমি 0px autoঠিক পরিবর্তিত হলেও autoএটি এখনও কাজ করে না।
অ্যারন ফ্র্যাঙ্ক

অবশ্যই তা নয়, অটো মার্জিনগুলি কেন্দ্রিয় সামগ্রীতে একটি পুরানো "হ্যাক"। আপনার যদি সঠিকভাবে প্রান্তিককরণের প্রয়োজন হয় তবে একটি ফ্লেক্সবক্স ব্যবহার করুন: display: flex; align-items: center; justify-content: centerএবং এখন আপনার সামগ্রীটি অনুভূমিকভাবে এবং উল্লম্বভাবে কেন্দ্রিক cen বা align-self: center; justify-self: centerবিষয়বস্তু নিজেই এ সরান । css-tricks.com/snippets/css/a-guide-to-flexbox
মাইক 'পোম্যাক্স' কামারম্যানস

14

কিছু পরিস্থিতিতে (যেমন আই, গেকো, ওয়েবকিট পূর্ববর্তী সংস্করণ) এবং উত্তরাধিকার হিসাবে উপাদান রয়েছে position:relative; প্রতিরোধ করবে margin:0 auto;কাজ করা থেকে, এমনকি যদি top, right, bottom, এবংleft সেট নেই।

উপাদানটিকে position:static;(ডিফল্ট) এ সেট করা এই পরিস্থিতিতে এটি ঠিক করতে পারে। সাধারণত, নির্দিষ্ট প্রস্থযুক্ত ব্লক স্তরের উপাদানগুলি margin:0 auto;উভয়ই relativeবা staticঅবস্থানের ব্যবহারকে সম্মান করবে ।


4
margin: 0 autoতুলনামূলকভাবে অবস্থানযুক্ত উপাদানগুলিতে ঠিক ততক্ষণ সূক্ষ্মভাবে কাজ করে যতক্ষণ না তারা কোনও ভাসা এবং নির্দিষ্ট প্রস্থের ব্লক উপাদানগুলি থাকে ...
এন্নুই

আমি ধরে নিয়েছি যে এই ব্যঙ্গাত্মক। আপনি যদি নিজের উত্তরটি সম্পাদনা করেন যাতে এটি ভুল না হয় আমি ডাউনভোটটি সরিয়ে দেব। আমি প্রায় 15 বছর ধরে সিএসএস লিখছি এবং কখনই স্মরণ করতে পারি না যে অটো মার্জিনগুলি তুলনামূলকভাবে নির্ধারিত নির্দিষ্ট প্রস্থের উপাদানগুলিকে আনুভূমিকভাবে কেন্দ্র করে কাজ করছে না - যদিও অন্য বৈশিষ্ট্যগুলি পছন্দ করে floatএবং displayআচরণটি পরিবর্তন করতে পারে।
এন্নুই

14

আপনি অটো প্রস্থ ডিভিও ব্যবহার করে কেন্দ্র করতে পারেন display:table;

div{
margin: 0px auto;
float: none;
display: table;
}

4
এটি কাজ করে, এবং কেন জানি না। আপনি ব্যাখ্যা করতে পারেন?
ThatsJustCheesy

4
আমি এটি আগে কখনও ব্যবহার করি নি তবে এটি এখন আমার পক্ষে কাজ করে।
zkytony

10

আমার ক্ষেত্রে সমস্যা হল আমি সেট ছিল সর্বনিম্ন ও সর্বোচ্চ প্রস্থ ছাড়া প্রস্থ নিজেই।


4
পুনরুদ্ধার করতে: উপাদানটি অবশ্যই position:staticএকটি নির্দিষ্ট width:সেট এবং একটি display:blockউপাদান হতে হবে
জোয়ে টি

এটি আমার জন্যও প্রস্থের সমস্যা ছিল - বুটস্ট্র্যাপ 100%
উপলভ্যভাবে

6

যখনই আমরা প্রস্থ যুক্ত করব না এবং যুক্ত margin:autoকরব না তখন আমার ধারণা এটি কার্যকর হবে না। এটা আমার অভিজ্ঞতা থেকে। প্রস্থটি ঠিক যেখানে সমান মার্জিন সরবরাহ করতে হবে তা ধারণা দেয়।


2

করার জন্য একটি বিকল্প নেই margin-left:auto; margin-right: auto;বা margin:0 auto;বেশী যে ব্যবহার position:absolute;: এই কেমন
(আপনি 50% উপাদান বাম অবস্থান সেটleft:50%; এটির ) তবে উপাদানটি সঠিকভাবে কেন্দ্রীভূত করার জন্য এটি সঠিকভাবে কেন্দ্র করবে না আপনাকে এটিকে একটি প্রদান করতে হবে এর প্রস্থের বিয়োগের অর্ধেকের মার্জিন, এটি আপনার উপাদানটিকে পুরোপুরি কেন্দ্র করবে

এখানে একটি উদাহরণ: http://jsfiddle.net/35ERq/3/



0

এটি শরীরের সিএসএসে রাখুন: পটভূমি: # 3D668F; তারপরে যোগ করুন: প্রদর্শন: ব্লক; মার্জিন: অটো; img এর CSS এ।


0

আমার কোনও দিন মনে আছে যে আমি একটি ডিভ কেন্দ্রে ব্যবহার করে অনেক সময় ব্যয় করেছি margin: 0 auto

আমার display: inline-blockএটি ছিল , যখন আমি এটি সরিয়ে ফেললাম, ডিভটি সঠিকভাবে কেন্দ্র করে।

রস যেমন উল্লেখ করেছে, এটি ইনলাইন উপাদানগুলিতে কাজ করে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.