কীভাবে ডিভি এলিমেন্টে এসভিজির নিচে অতিরিক্ত স্থান থেকে মুক্তি পাবেন


93

সমস্যার একটি চিত্রণ এখানে দেওয়া হয়েছে (ফায়ারফক্স এবং ক্রোমে পরীক্ষিত):

<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>

জেএসফিডেলে দেখুন

নীলের নীচের redভিতরে অতিরিক্ত জায়গা লক্ষ্য করুন ।divsvg

ইতিমধ্যে উভয় উপাদানকে সেটিং করার চেষ্টা করেছে paddingএবং কোনও ভাগ্য নেই withmargin0


চিত্রগুলির সাথে একই ধরণের সমস্যার সাথে সম্পর্কিত বলে মনে হয়, যেমন: stackoverflow.com/questions/7774814/…
ড্যানিয়েল

উত্তর:


182

আপনার যা দরকার তা display: block;আপনার উপর svg

<svg style="display: block;"></svg>

এটি কারণ ইনলাইন-ব্লক উপাদানগুলি (যেমন <svg>এবং <img>) পাঠ্য বেসলাইনে বসে। আপনি যে অতিরিক্ত স্থানটি দেখছেন তা হ'ল অক্ষর অবতরণকারীদের ('y', 'g' ইত্যাদির উপরের লেজ) মিলে রাখার জায়গাটি।

আপনার vertical-align:topএটি রাখার প্রয়োজন হলে inlineবা ব্যবহার করতে পারেনinline-block


বিস্ময়কর। তাহলে কি সমস্ত ইনলাইন উপাদান নীচে সাদা স্থান যুক্ত করবে?
ক্ল্যাপস

4
ব্যাখ্যাটি হ'ল inline-blockউপাদানগুলি (যেমন <svg>এবং <img>) পাঠ্য বেসলাইনে বসে। আপনি যে অতিরিক্ত স্থানটি দেখছেন তা হ'ল অক্ষর অবতরণকারীদের ('y', 'g' ইত্যাদির উপরের লেজ) মিলে রাখার জায়গাটি।
পল লেবিউ

4
আমি পছন্দ করতে চাইvertical-align:top
জন জিয়াও

আমি নিশ্চিত হয়েছি যে অতিরিক্ত স্থানটি কিছু করার জন্য ছিল line-heightতবে line-height: 0এসভিজি এবং / অথবা এর ধারকটিতে সেট করা কোনও তাত্পর্যপূর্ণ হয়নি। শুধুমাত্র display: blockএটি সমাধান। আপনি যদি কোনও বৃহত এসভিজিতে কাজ করে যাচ্ছেন তবে এটি এমন একটি গ্যাচা কারণ আপনি কখনই এটি ইনলাইন হিসাবে ভাবেন না। আপনার যদি সামান্য আইকন থাকে তবে তা বোধগম্য হয়।
ডেভুসার

display: blockআমার পক্ষে কাজ করেনি, তবে vertical-alignকরেছিলেন
জয়

12

svgএকটি inlineউপাদান। inlineউপাদান সাদা স্থান ছেড়ে।

সমাধান:

যোগ display:blockকরার জন্য svg, বা অভিভাবক বানানো উচ্চতা হিসাবে একই div svg

ডেমো এখানে।




1

একটি যুক্ত এবং ব্যবহার height:100pxকরার চেষ্টা করুন :divheight="100%"svg

<div style="background-color:red;height:100px">
    <svg height="100%" width="100" style="background-color:blue;"></svg>
</div>

4
আপনার মন্তব্যের জন্য ধন্যবাদ. এটি সূক্ষ্মভাবে কাজ করে, তবে কৃপণ হয়ে ওঠে যখন কেউ svgঅগ্রিমের উচ্চতাটি জানে না ।
ড্যানিয়েল

1

কেবল প্রধান ডিভ উপাদানগুলিতে উচ্চতা যুক্ত করুন

<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>

0

আপনার স্টাইলটি এতে পরিবর্তন করুন

স্টাইল = "ব্যাকগ্রাউন্ড-রঙ: লাল; লাইন-উচ্চতা: 0;"

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