আমি কীভাবে এইচটিএমএলে টিয়ারড্রপ তৈরি করব?


222

ওয়েবপৃষ্ঠায় প্রদর্শন করতে কীভাবে আমি এই জাতীয় আকার তৈরি করব?

আমি চিত্রগুলি ব্যবহার করতে চাই না কারণ তারা স্কেলিংয়ের ক্ষেত্রে ঝাপসা হয়ে যাবে

টিয়ারড্রপ আকারটি এইচটিএমএল, সিএসএস বা এসভিজি দিয়ে তৈরি করা দরকার

আমি সিএসএস দিয়ে চেষ্টা করেছি :

.tear {
  display: inline-block;
  transform: rotate(-30deg);
  border: 5px solid green;
  width: 50px;
  height: 100px;
  border-top-left-radius: 50%;
  border-bottom-left-radius: 50%;
  border-bottom-right-radius: 50%;
}
<div class="tear">
</div>

সত্যিই খুব খারাপ হয়ে গেছে।

এবং তারপরে আমি এসভিজি দিয়ে চেষ্টা করেছি:

<svg viewBox="0 100 100">
  <polygon points="50,0 100,70 50,100 0,70"/>
</svg>

এটি আকারটি পেয়েছিল তবে নীচের অংশটি বাঁকা ছিল না।

এই আকারটি তৈরি করার কোনও উপায় আছে যাতে এটি কোনও HTML পৃষ্ঠায় ব্যবহার করা যায়?


12
"আমি চিত্রগুলি ব্যবহার করতে চাই না কারণ তারা স্কেলিংয়ের ক্ষেত্রে ঝাপসা হয়ে যাবে", আপনি কেন চিত্রটি স্কেলিং করছেন? আপনি [srcset]বা <picture>উপাদানটি ব্যবহার করলে তারা ঝাপসা হয়ে যায় না । আরও ভাল, কেবল একটি <img src="tear.svg" alt="Teardrop"/>
এসভিজি

32
@zzzzBov: আপনি কি সত্যিই pictureউপাদানটির সুপারিশ করছেন ? কোন সমর্থন ইন্টারনেট, জন্য কোন সমর্থন ক্রোম, প্রথম সংস্করণের জন্য কোন সমর্থন সাফারি জন্য। আমার কি চালিয়ে যাওয়া উচিত?
jbutler483

9
@zzzzBov। why are you scaling the image?ভাল, চিত্রটি স্কেলিং ছাড়াই অস্পষ্ট প্রদর্শিত হতে পারে। এর জন্য আপনার যা দরকার তা হ'ল একটি ব্রাউজার জুম ইন my সুতরাং, হ্যাঁ, আপনি যদি এসভিজি ব্যবহার করে চিত্রগুলি এড়াতে পারেন তবে এর জন্য যান।
নোলোনার

63
ইউনিকোড সবগুলি সমাধান করে ... U + 1F4A7 💧
টমাস ওয়েলার

উত্তর:


327

এসভিজি পদ্ধতি:

আপনি একটি ইনলাইন এসভিজি এবং এর <path/>পরিবর্তে উপাদানটির সাহায্যে ডাবল বক্ররেখা সহজেই অর্জন করতে পারেন<polygon/> উপাদানটি বাঁকানো আকারগুলিকে মঞ্জুরি দেয় না ।

নিম্নলিখিত উদাহরণটি <path/>সহ উপাদানটি ব্যবহার করে :

<svg width="30%" viewbox="0 0 30 42">
  <path fill="transparent" stroke="#000" stroke-width="1.5"
        d="M15 3
           Q16.5 6.8 25 18
           A12.8 12.8 0 1 1 5 18
           Q13.5 6.8 15 3z" />
</svg>

ডাবল বক্ররেখা দিয়ে এই ধরণের আকার তৈরি করার জন্য এসভিজি হ'ল একটি দুর্দান্ত সরঞ্জাম। আপনি একটি এসভিজি / সিএসএস তুলনা সহ ডাবল বক্ররেখা সম্পর্কে এই পোস্টটি চেক করতে পারেন । এক্ষেত্রে এসভিজি ব্যবহারের কয়েকটি সুবিধা হ'ল:

  • বক্র নিয়ন্ত্রণ
  • নিয়ন্ত্রণ পূরণ করুন (অস্বচ্ছতা, রঙ)
  • স্ট্রোক নিয়ন্ত্রণ (প্রস্থ, অস্বচ্ছতা, রঙ)
  • কোডের পরিমাণ
  • আকৃতিটি তৈরি এবং বজায় রাখার সময়
  • স্কেলেবেল
  • কোনও HTTP অনুরোধ নেই (উদাহরণের মতো যদি ইনলাইন ব্যবহার করা হয়)

ইনলাইন এসভিজির জন্য ব্রাউজার সমর্থনটি ইন্টারনেট এক্সপ্লোরার 9 এ ফিরে যায় more আরও তথ্যের জন্য ক্যান আইজ দেখুন ।


এটি হ্রাস করতে পারে: <svg width="100%" height="100%" viewBox="0 0 8 8" /> <path d="M4 1L3 4A1.2 2 0 1 0 5 4"/> </svg> ... এটি আপনার দেওয়া ক্ষেত্রটি পূরণ করবে, সুতরাং এটি "ফ্যাট" বা "চর্মসার" বৃষ্টিপাতগুলি তৈরি করতে পারে ... প্রয়োজনে নির্দিষ্ট উচ্চতা / প্রস্থে পরিবর্তন করুন
টেকনোসরাসটি

1
@ টেকনোসরাসকে কমান্ডের সংখ্যা কমানোর সমস্যাটি হ'ল সমস্যাটি হ'ল আপনার d="..."আর ড্রপের শীর্ষে ডাবল বক্ররেখা নেই।
ওয়েব-টিকি

10
+1 কারণ আপনার এটির জন্য এসভিজি ব্যবহার করা উচিত, সিএসএস নয়। এসভিজির মতো একই ব্রাউজার সমর্থন সম্পর্কে আপনার যে সিএসএস বৈশিষ্ট্যগুলি অর্জন করতে হবে তা সেই স্কোরটিতে সিএসএসের কোনও সুবিধা নেই। সিএসএস আকারগুলি করতে পারে তবে এটি এর জন্য ডিজাইন করা নয়; কাজের জন্য ডিজাইন করা কোনও সরঞ্জাম দিয়ে চালাকি করার জন্য কেবল চালাক হওয়ার জন্য কোনও স্ক্রু ড্রাইভারের সাথে পেরেক দিয়ে হাতুড়ি দেওয়ার চেষ্টা করবেন না।
সিম্বা

6
আরও ভাল: একটি এসভিজি ফাইল তৈরি করুন এবং ব্যবহার করুন <img /> হাইপারটেক্সট ডকুমেন্টে ।
আন্দ্রেয়াস রেজব্রান্ড

@ আন্ড্রেসআজব্র্যান্ড যা প্রকল্পের উপর নির্ভর করে একটি ভাল ধারণা হতে পারে তবে এটি একটি এইচটিটিপি অনুরোধ যোগ করে যা ওপি এড়াতে চায় বলে মনে হয়।
ওয়েব-টিকি

135

বেসিক বর্ডার-রেডিয়াস

আপনি সীমানা-ব্যাসার্ধ 'এবং ট্রান্সফর্ম ব্যবহার করে তুলনামূলকভাবে সিএসএসের মধ্যে এটি করতে পারেন। আপনার সিএসএস কিছুটা বাইরে ছিল।

.tear {
  width: 50px;
  height: 50px;
  border-radius: 0 50% 50% 50%;
  border: 3px solid black;
  transform: rotate(45deg);
  margin-top: 20px;
}
<div class="tear"></div>

উন্নত সীমানা-ব্যাসার্ধ

এটি উপরের সাথে একই রকম হবে তবে এটি আরও কিছুটা আকার দেয়।

.tear {
  width: 50px;
  height: 50px;
  border-radius: 80% 0 55% 50% / 55% 0 80% 50%;
  border: 3px solid black;
  transform: rotate(-45deg);
  margin-top: 20px;
}
<div class="tear"></div>


4
@zzzzBov আমি কীভাবে এটি ভুল সরঞ্জাম তা পুরোপুরি বুঝতে পারি না, ওপি একটি সিএসএস বা এসভিজি সমাধান চেয়েছিল এবং আমি একটি সিএসএস সমাধান নিয়ে এসেছি যা বর্ণনাকে যতটা সম্ভব ফিট করে। এটির লাইটওয়েট এবং পরিবর্তন করা সহজ।
স্টিওয়ার্টসাইড

12
@zzzzBov চিত্র এবং স্প্রাইটের জন্য সিএসএস ব্যবহার করা সাধারণ ব্যবহার। জেনেরিক "চিত্র" উত্পন্ন করার জন্য কোডের একটি খুব ন্যূনতম অংশ। আমি বিশ্বাস করি এটি যথাযথ কারণ এটি কোনও ওয়েব পৃষ্ঠায় ব্যবহারের যোগ্য বলে উত্থাপিত প্রশ্নগুলির মধ্যে কার্যকর।
স্টিওয়ার্টসাইড

13
@zzzzBov: সিএসএস আকারের জন্য পুরোপুরি ভাল। এই ধরনের আকৃতির জন্য কি ব্যবহার করা হয় কে বলবে? শব্দার্থগতভাবে একটি চিত্র - ওপি স্পষ্টভাবে জানিয়েছে যে তারা কোনও চিত্র ব্যবহার করতে চান না, অন্যথায় কেন এই জাতীয় প্রশ্ন করা হবে?
jbutler483

46
@ jbutler483, "সিএসএস আকারের জন্য পুরোপুরি ভাল" না, এটি ভয়াবহ। শুধু কারণ আপনার পারেন মানে এই নয় আপনি উচিত । এটি মার্কআপে সমস্ত ধরণের আবর্জনা উপস্থাপন করে এবং এটি বজায় রাখা এক ক্লান্তিকর জঞ্জাল। চিত্রগুলি বজায় রাখা অনেক সহজ কারণ সেগুলি সহজেই তাদের নিজস্ব স্ব-অন্তর্ভুক্ত ফাইলটিতে পৃথক করা হয়।
zzzzBov

19
যখন আপনি বুটস্ট্র্যাপ বা ফন্ট দুর্দান্ত আইকন ব্যবহার করেন তখন 'মার্কআপের আবর্জনা' ঘটে। সিরিয়াসলি, আমি মনে করি আপনি যখন পছন্দগুলি পছন্দ করেন তখন কিছুটা উপরে চলে যাচ্ছেন (বেশ স্পষ্টতই) যখন সীমানা ব্যাসার্ধের ঘোষণার সাহায্যে এটি অর্জন করা যায়। কিন্তু ওহে, ছবিগুলি ব্যবহার না করার জন্য কে আপনাকে বলবে?
jbutler483

88

আপনার সিএসএস কোড সহ আপনার মূল সমস্যাটি ছিল:

  1. আপনি প্রস্থের চেয়ে আলাদা উচ্চতা ব্যবহার করেছেন
  2. আপনি সঠিক কোণ আকারটি ঘোরান নি

সুতরাং, এই সমস্যাগুলিকে 'ফিক্সিং' করে আপনি উত্পন্ন করবেন:

.tear {
  display: inline-block;
  transform: rotate(-45deg);
  border: 5px solid green;
  width: 100px;
  height: 100px;
  border-top-left-radius: 50%;
  border-bottom-left-radius: 50%;
  border-bottom-right-radius: 50%;
}
/***for demo only***/

.tear {
  margin: 50px;
}
<div class="tear">
</div>

সিএসএস দৈর্ঘ্যে সংরক্ষণ করার জন্য দয়া করে নোট করুন, আপনি নিজের সীমানা ব্যাসার্ধের বৈশিষ্ট্যগুলিকে আবার লিখতে পারেন:

border-radius: 50% 0 50% 50%;

এটি এই সিঁড়িতে দেখানো হিসাবে সিউডো উপাদানগুলির সাথে বাড়ানো যেতে পারে

বিকল্প

আমি দেখেছি এই দ্বারা বিনয় Challuru উপর codepen।

দয়া করে নোট করুন যে এখানে যুক্তি দিয়ে, আমি প্রায় কোনও সম্ভাব্য বিল্ড শেপ / ইত্যাদিতে এসভিজি তৈরি করতে সক্ষম হয়েছি । উদাহরণস্বরূপ, একটি দ্রুত আউটপুট ছিল:

এটি একটি এসভিজি ব্যবহার করছে এবং আপনাকে আকৃতিটি একাধিক উপায়ে পরিবর্তন করতে দেয়, যার আকারটি পছন্দসই ফলাফলটিতে পরিবর্তন করার ক্ষমতা রাখে:

দাবি অস্বীকার আমি উপরের কলমটি লিখিনি, কেবল এটি উত্সর্গাদিত।


সিএসএস সংস্করণ

যদিও এটি সম্পূর্ণরূপে অনেক দূরে, আপনি CSS ব্যবহার করে এই আকারটি তৈরি করতেও সক্ষম হতে পারেন।

এসভিজি সংস্করণ

আমার জানা উচিত যে এসভিজির এই উত্তরের শীর্ষে থাকা উচিত, তবে আমি চ্যালেঞ্জ পছন্দ করি এবং তাই এসভিজির সাথে এখানে একটি প্রচেষ্টা করা হয়েছে।

svg {
  height: 300px;
}
svg path {
  fill: tomato;
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 100 100">

  <path d="M49.015,0.803
    c-0.133-1.071-1.896-1.071-2.029,0
    C42.57,36.344,20,43.666,20,68.367   
    C20,83.627,32.816,96,48,96
    s28-12.373,28-27.633
    C76,43.666,53.43,36.344,49.015,0.803z 
    M44.751,40.09   
    c-0.297,1.095-0.615,2.223-0.942,3.386
    c-2.007,7.123-4.281,15.195-4.281,24.537
    c0,5.055-2.988,6.854-5.784,6.854   
    c-3.189,0-5.782-2.616-5.782-5.831
    c0-11.034,5.315-18.243,10.005-24.604
    c1.469-1.991,2.855-3.873,3.983-5.749   
    c0.516-0.856,1.903-0.82,2.533,0.029
    C44.781,39.116,44.879,39.619,44.751,40.09z"/>


</svg>

pathমানগুলি পরিবর্তন করে আপনি আপনার টিয়ারড্রপ ডিজাইনের আকার পরিবর্তন করতে সক্ষম হবেন।


10
এগুলি খুব মনে হচ্ছে ... ভার্জোজ। জেএস দ্রবণটি বিশেষত অযৌক্তিক।
উদাঃ

4
@ ইজিড: আমি আমার উত্তরে বলেছি যে আমি জেএস সংস্করণ তৈরি করিনি। এছাড়াও নোট করুন জেএস সংস্করণ আপনাকে রান সময় শেপটি পরিবর্তন করতে দেয়
jbutler483

55

এই আকারটির আইএমওর জন্য মসৃণ বক্ররেখা প্রয়োজন ধারাবাহিকতা নিশ্চিত বেজিয়ার ।

প্রশ্নে ড্রপ:

প্রশ্ন ড্রপ জন্য,

  • মসৃণ কার্ভগুলি ব্যবহার করা যায় না, কারণ নিয়ন্ত্রণ পয়েন্টগুলি একই দৈর্ঘ্যের হয় না। তবে আমাদের এখনও নিয়ন্ত্রণ পয়েন্টগুলি পূর্বের নিয়ন্ত্রণ পয়েন্টগুলির ঠিক বিপরীতে (180 ডিগ্রি) থাকা উচিত , বক্রের সম্পূর্ণ ধারাবাহিকতা নিশ্চিত করতে নীচে দেওয়া চিত্রটি এই পয়েন্টটি তুলে ধরে:

এখানে চিত্র বর্ণনা লিখুন
দ্রষ্টব্য : লাল এবং নীল বক্ররেখা দুটি পৃথক চতুষ্কোণ বক্ররেখা।

  • stroke-linejoin="miter"উপরের অংশের জন্য।

  • যেহেতু এই আকারটি কেবল ধারাবাহিক cকমান্ড ব্যবহার করে, আমরা এটি বাদ দিতে পারি।

এখানে চূড়ান্ত স্নিপেট:

<svg height="300px" width="300px" viewBox="0 0 12 16">
  <path fill="#FFF" stroke="black" stroke-width="0.5" stroke-linejoin="miter" 
        d="M 6 1 c -2 3 -5 5 -5 9
           0 7 10 7 10 0 
           0 -4 -3 -6 -5 -9z" />
</svg>

যদিও টিবিএইচ , গৃহীত উত্তরের কার্ভগুলি বেশ ধ্রুবক নয়।


আইই 5-8 (ভিএমএল) এর জন্য

শুধুমাত্র আইই 5-8 এ কাজ করে। ভিএমএল এসভিজির চেয়ে পৃথক কমান্ড ব্যবহার করে । যেমন। এটি আপেক্ষিক কিউবিক বেজিয়ারের জন্য ভি ব্যবহার করে

দ্রষ্টব্য: এই স্নিপেট IE 5-8 তেও চলবে না। আপনাকে একটি এইচটিএমএল ফাইল তৈরি করতে হবে এবং এটি সরাসরি ব্রাউজারে চালানো দরকার।

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
    <style> v\:* { behavior: url(#default#VML); }

    </style >
</head>
<body>
    <div style="width:240; height:320;">
        <v:shape coordorigin="0 0" coordsize="12 16" fillcolor="white" strokecolor="black" strokewidth="1"
            strokeweight="5" style="width:240; height:320" 
            path="M 6 1 v -2 3 -5 5 -5 9
           0 7 10 7 10 0 
           0 -4 -3 -6 -5 -9 x e">
        </v:shape>
    </div>
</body>
</html>

"নিয়ন্ত্রণ রেখাগুলি একই দৈর্ঘ্যের না হওয়ায় মসৃণ বক্ররেখা ব্যবহার করা যাবে না।" "মসৃণ" এর অর্থ এই নয় যে স্পর্শী হ্যান্ডলগুলি (নিয়ন্ত্রণ পয়েন্টগুলি) একটি সরলরেখায় বসে? কেন তাদের একই দৈর্ঘ্যের হতে হবে?
নিককলো এম

2
@NiccoloM। এসভিজি-তে মসৃণ বক্র (টি এবং এস কমান্ড) এর অর্থ হ্যান্ডেলটি প্রতিসম বিপরীত, পাশাপাশি পূর্ববর্তী হ্যান্ডেলের দৈর্ঘ্যের সমান । সাধারণ ভাষায়, মসৃণ বক্ররেখার অর্থ হ্যান্ডেলের বিভিন্ন দৈর্ঘ্য হতে পারে, তবে এসভিজি-তে, দৈর্ঘ্যটি পূর্ববর্তী কার্ভগুলি হ্যান্ডেলের সমান হয় :)
ম্যাক পায়েনে

42

অথবা যদি আপনার দর্শকদের ফন্ট এটি সমর্থন করে তবে ইউনিকোড অক্ষর ব্যবহার করুন

ড্রপলেট: 💧 ( &#128167;)

অথবা

কালো ড্রপলেট: 🌢 ( &#127778;)

সেই অনুযায়ী স্কেল!


আপনি এটি @ ফন্ট-মুখের সাহায্যে ব্যবহার করতে পারেন, তবে তারপরে সঠিক জায়গায় এবং এর মতো রাখার জন্য আপনার কাছে একটি ফন্ট ফাইল রয়েছে।
1934286

3
এসভিজি এবং এর মতো উত্সর্গীকৃত ইউনিকোড প্রতীকটি ভাল। এর জন্য সিএসএস খারাপ। পিএনজি ঠিক আছে, তবে এটি নিখুঁত নয় কারণ এটি রাস্টার গ্রাফিক্স। জেপিজি অত্যন্ত খারাপ, এত খারাপ যে আমি যদি এটি দেখি তবে স্বপ্ন দেখি would
আন্দ্রেয়াস রেজব্রান্ড

@ আন্দ্রেয়াস রেজব্র্যান্ড একটি ২০x20 পিএনজি 200x200 জেপিজির চেয়ে খারাপের স্কেল করবে। এবং, একই আকারের সাথে, একটি সঙ্কুচিত জেপিজি একটি পিএনজির সমতুল্য। তারা উভয় রাস্টার এবং তারা একই সমস্যা ভোগে।
নিকো

@নিকো: তত্ত্বের ক্ষেত্রে, হ্যাঁ, আপনি শূন্য সংক্ষেপণের সাথে জেপিজি ব্যবহার করতে পারেন। কিন্তু ইন্টারনেটের এই এক মত দুর্যোগ পূর্ণ en.wikipedia.org/wiki/Atomic_number#/media/...
আন্দ্রিয়াস Rejbrand

28

আমি ব্যক্তিগতভাবে এ জন্য একটি এসভিজি ব্যবহার করব। আপনি বেশিরভাগ ভেক্টর গ্রাফিক্স সফ্টওয়্যারগুলিতে এসভিজি তৈরি করতে পারেন। আমি সুপারিশ করব:

আমি নীচে একটি তৈরি করেছি যা ইলাস্ট্রেটারে আপনার আকৃতির ট্রেসিং।

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="223.14px" height="319.008px" viewBox="0 0 223.14 319.008" enable-background="new 0 0 223.14 319.008" xml:space="preserve">
  <path fill="none" stroke="#000000" stroke-width="12" stroke-miterlimit="10" d="M111.57,13.291c0,0,57.179,86.984,72.719,108.819
    	c30.359,42.66,41.005,114.694,1.626,154.074c-20.464,20.463-47.533,30.293-74.344,29.488h-0.002
    	c-26.811,0.805-53.88-9.025-74.344-29.488C-2.154,236.804,8.492,164.77,38.851,122.11C54.391,100.275,111.57,13.291,111.57,13.291z" />
</svg>


27

এইচটিএমএল ক্যানভাস

এটি এখনও পর্যন্ত এই থ্রেডে অনাবৃত একটি বিকল্প। ক্যানভাস অঙ্কনের জন্য ব্যবহৃত কমান্ডগুলি এসভিজির সাথে খুব মিল (এবং ওয়েব-টিকি এই উত্তরটিতে ব্যবহৃত বেস আইডিয়াটির জন্য ক্রেডিট প্রাপ্য)।

প্রশ্নের মধ্যে আকারটি হয় ক্যানভাসের নিজস্ব বক্ররেখার কমান্ড (চতুষ্কোণীয় বা বেজিয়ার) বা পথের API ব্যবহার করে তৈরি করা যেতে পারে। উত্তরে তিনটি পদ্ধতির উদাহরণ রয়েছে।

ক্যানভাসের জন্য ব্রাউজার সমর্থনটি বেশ ভাল


চতুর্ভুজ বক্ররেখা ব্যবহার

window.onload = function() {
  var canvas = document.getElementById('canvas');
  if (canvas.getContext) {
    var ctx = canvas.getContext('2d');

    ctx.beginPath();
    ctx.lineJoin = 'miter';
    ctx.moveTo(120, 20);
    ctx.quadraticCurveTo(117.5, 30, 148, 68);
    ctx.arc(120, 88, 34.5, 5.75, 3.66, false);
    ctx.quadraticCurveTo(117.5, 35, 120, 20);
    ctx.closePath();
    ctx.strokeStyle = '#000';
    ctx.lineWidth = 2;
    ctx.fillStyle = '#77CCEE'
    ctx.stroke();
    ctx.fill();
  }
}
canvas {
  margin: 50px;
  height: 100px;
  width: 200px;
  transform: scale(1.5);
}

body{
  background-image: radial-gradient(circle, #3F9CBA 0%, #153346 100%);
}
<canvas id='canvas'></canvas>

নীচে গ্রেডিয়েন্ট ফিল এবং শ্যাডো সহ একটি উন্নত সংস্করণ রয়েছে। hoverএসভিজির তুলনায় ক্যানভাসের একটি অপূর্ণতা চিত্রিত করতে আমি আকৃতিটিতে একটি প্রভাবও অন্তর্ভুক্ত করেছি । ক্যানভাস হ'ল রাস্টার (পিক্সেল) ভিত্তিক এবং তাই নির্দিষ্ট বিন্দু ছাড়িয়ে স্কেল করা হলে অস্পষ্ট / পিক্সেলেটেড লাগবে। এর একমাত্র সমাধান হ'ল প্রতিটি ব্রাউজারের আকার পরিবর্তন করুন যা ওভারহেড।


বেজিয়ার কার্ভ ব্যবহার করা

পাথ এপিআই ব্যবহার করে

দ্রষ্টব্য: এখানে আমার উত্তরপত্রে উল্লিখিত হিসাবে , पथ API এখনও আইআই এবং সাফারি দ্বারা সমর্থিত নয়।


আরও পড়া:


আমি দেখতে পাচ্ছি না যে সবসময় এসভিজি আরও ভাল বিকল্প option এটি অবশ্যই এর মতো অনেক ক্ষেত্রেই ভাল বিকল্প। তবে ক্যানভাসের নিজস্ব উপকার রয়েছে। চমৎকার উত্তর. আপনার উত্তর থেকে আমি এটি করতে পারি, অবশ্যই এসভিজি ব্যবহার করা অনেক সহজ!
সর্বাধিক পায়েনে

হ্যাঁ @ টিমক্রুল, এসভিজি লিখতে / ব্যবহার করা সহজ। ক্যানভাসের নিজস্ব উপকার রয়েছে তবে যা যা পড়েছি তা থেকে প্রাথমিকভাবে আকারের মতো সাধারণ লোগো ব্যবহার করার সময় এটি খুব বেশি সুবিধাজনক হয় না কারণ এটি এসভিজির বিপরীতে রাস্টার ভিত্তিক।
হ্যারি

25

আমিও পাওয়া এই উপর Codepen ব্যবহারকারীর তৈরী আনা তুদর CSS এবং ব্যবহার box-shadowশৈলী এবং স্থিতিমাপ সমীকরণ নেই। খুব সাধারণ, খুব সামান্য কোড। এবং অনেক ব্রাউজার CSS3 বক্স-শ্যাডো স্টাইল সমর্থন করে:

body {
  background-color: black;
}
.tear {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -0.125em;
  width: 0.25em;
  height: 0.25em;
  border-radius: 50%;
  box-shadow: 0em -5em red, 0.00118em -4.97592em #ff1800, 0.00937em -4.90393em #ff3000, 0.03125em -4.7847em #ff4800, 0.07283em -4.6194em #ff6000, 0.13915em -4.40961em #ff7800, 0.23408em -4.15735em #ff8f00, 0.36em -3.86505em #ffa700, 0.51777em -3.53553em #ffbf00, 0.70654em -3.17197em gold, 0.92382em -2.77785em #ffef00, 1.16547em -2.35698em #f7ff00, 1.42582em -1.91342em #dfff00, 1.69789em -1.45142em #c7ff00, 1.97361em -0.97545em #afff00, 2.2441em -0.49009em #97ff00, 2.5em 0.0em #80ff00, 2.73182em 0.49009em #68ff00, 2.93032em 0.97545em #50ff00, 3.08681em 1.45142em #38ff00, 3.19358em 1.91342em #20ff00, 3.24414em 2.35698em #08ff00, 3.23352em 2.77785em #00ff10, 3.15851em 3.17197em #00ff28, 3.01777em 3.53553em #00ff40, 2.81196em 3.86505em #00ff58, 2.54377em 4.15735em #00ff70, 2.21783em 4.40961em #00ff87, 1.84059em 4.6194em #00ff9f, 1.42017em 4.7847em #00ffb7, 0.96608em 4.90393em #00ffcf, 0.48891em 4.97592em #00ffe7, 0.0em 5em cyan, -0.48891em 4.97592em #00e7ff, -0.96608em 4.90393em #00cfff, -1.42017em 4.7847em #00b7ff, -1.84059em 4.6194em #009fff, -2.21783em 4.40961em #0087ff, -2.54377em 4.15735em #0070ff, -2.81196em 3.86505em #0058ff, -3.01777em 3.53553em #0040ff, -3.15851em 3.17197em #0028ff, -3.23352em 2.77785em #0010ff, -3.24414em 2.35698em #0800ff, -3.19358em 1.91342em #2000ff, -3.08681em 1.45142em #3800ff, -2.93032em 0.97545em #5000ff, -2.73182em 0.49009em #6800ff, -2.5em 0.0em #7f00ff, -2.2441em -0.49009em #9700ff, -1.97361em -0.97545em #af00ff, -1.69789em -1.45142em #c700ff, -1.42582em -1.91342em #df00ff, -1.16547em -2.35698em #f700ff, -0.92382em -2.77785em #ff00ef, -0.70654em -3.17197em #ff00d7, -0.51777em -3.53553em #ff00bf, -0.36em -3.86505em #ff00a7, -0.23408em -4.15735em #ff008f, -0.13915em -4.40961em #ff0078, -0.07283em -4.6194em #ff0060, -0.03125em -4.7847em #ff0048, -0.00937em -4.90393em #ff0030, -0.00118em -4.97592em #ff0018;
}
<div class="tear"></div>


7
যদিও এটি টিয়ারড্রপের জন্য অনুরোধ করা হচ্ছে তেমন সাদৃশ্যপূর্ণ নয়।
ডপপেলগ্রিনিয়ার

20

সিএসএস সংস্করণ

এখানে মোটামুটি কয়েকটি উত্তর রয়েছে বলে আমি ভেবেছিলাম কেন এটি অন্য কোনও পদ্ধতিতে যুক্ত করবেন না। এটি উভয়ই ব্যবহার করছে এইচটিএমএল এবং সিএসএসটিয়ারড্রপ তৈরি করতে এটি ।

এটি আপনাকে টিয়ারড্রপের সীমানা এবং পটভূমির রঙ পরিবর্তন করতে এবং এর শীর্ষ অংশটিকে আবার আকার দিতে দেবে।

একটি একক ব্যবহার করে divআমরা borderএবং এর সাথে একটি বৃত্ত তৈরি করতে পারি border-radius। তারপরে ছদ্ম উপাদানগুলি ( :beforeএবং :after) ব্যবহার করে আমরা এখানে আরও একটি সিএসএস ত্রিভুজ তৈরি করি , এটি টিয়ারড্রপের টিপ হিসাবে কাজ করবে। সীমানা হিসাবে আমরা ছোট আকার এবং পছন্দসই ব্যাকগ্রাউন্ড রঙের সাথে শীর্ষে রাখি Using:before:after

div {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 4px solid;
  margin: 80px auto;
  position: relative;
}
div:before,
div:after {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  height: 0;
}
div:before {
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 104px solid black;
  top: -75px;
}
div:after {
  border-left: 46px solid transparent;
  border-right: 46px solid transparent;
  border-bottom: 96px solid #fff;
  top: -66px;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 1;
}
<div></div>


এখানে একটি পটভূমির রঙ সহ টিয়ারড্রপের একটি ডেমো রয়েছে

এটি একটি পটভূমির রঙের উপর রাখার মতো divএবং :after bottom-borderএকই রং পরিবর্তন করার মতোই সহজ। সীমানা পরিবর্তন করতে আপনাকে divসীমানার রঙ এবং :beforeপটভূমির রঙও পরিবর্তন করতে হবে ।


রুদ্দি কলম একটি পটভূমির রঙ মান অনুপস্থিত।
পারসিজন

2
@ পার্সিজান হ্যারি আড্ডায় কিছু বলেছিলেন এবং আমি সেই কলমের দিকে তাকিয়ে ছিলাম ভুলে যাব যে এটি স্বয়ংক্রিয়ভাবে সংরক্ষণ করে এবং এখনই সংরক্ষণ করে। হাহাহা, এটিকে আবার আগের মতো করে দেব। সম্পন্ন.
রাডি

17

নিম্নলিখিতটি তৈরি করতে ব্যবহৃত হয়েছিল এমন একটি চিত্র রূপান্তর সংস্থান যেমন: http://image.online-convers.com/convert-to-svg ব্যবহার করে এসভিজির সাহায্যে এটি করা বেশ সহজ :

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
 "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
 width="213.000000pt" height="300.000000pt" viewBox="0 0 213.000000 300.000000"
 preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.12, written by Peter Selinger 2001-2015
</metadata>
<g transform="translate(0.000000,300.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1035 2944 c-143 -250 -231 -380 -508 -752 -347 -465 -432 -616 -493
-882 -91 -394 10 -753 285 -1013 508 -479 1334 -361 1677 240 126 221 165 494
105 726 -66 254 -178 452 -609 1076 -96 140 -226 335 -288 435 -155 249 -135
229 -169 170z m85 -212 c40 -69 192 -298 543 -818 268 -396 354 -593 364 -835
12 -281 -82 -509 -296 -714 -103 -99 -236 -173 -396 -221 -82 -25 -105 -27
-260 -28 -148 -1 -181 2 -255 22 -348 96 -611 357 -691 689 -41 167 -25 392
41 587 62 185 154 334 444 716 177 235 320 444 402 592 27 49 51 88 54 88 3 0
25 -35 50 -78z"/>
</g>
</svg>


9
@ পেরিজান আপনি কিছু সম্পাদক থেকে অনুলিপি জিজ্ঞাসা করছেন কেন? এসভিজি হ'ল এসজিজি, আপনি যে কোনও সরঞ্জামটি তৈরি করতে চান তা ব্যবহার করতে পারেন।
অভিনব গৌনিয়াল

2
@ অভিনবগৌনিয়াল: 'সম্পাদকগণ' যেমন আপনি তাদের কল করতে চান, তেমন ঘোষণায় অতিরিক্ত 'ফ্লাফ' যুক্ত করুন। উদাহরণস্বরূপ, 300.000000ptএবং মেটাডেটার যা সত্যই প্রয়োজন নেই
jbutler483

12
@ পার্সিন আপনি হাত / কোডেড দ্বারা কী বোঝাতে চেয়েছেন? কেউ তাদের কোডিংয়ের কাজগুলি সহজ করার জন্য কেবল মাত্র হাতে / কোডেড চিত্রক তৈরি করেছেন এবং এটি এখনও একই জিনিস উত্পাদন করে। তারপরে আবার যখন আপনি ব্রাউজারে এসভিজি ব্যবহার করছেন, আপনি কেন নিজেরাই সমাবেশ / ভাষা ব্যবহার করে কোড করবেন না? এবং কেন সমাবেশে থামবেন, তারগুলি ব্যবহার করে এটি হ্যান্ড / কোড করুন বা কেবল এটি নিজেই আঁকুন। এটি এমন কোনও কারণ নয় যা আমি প্রত্যাশা করছিলাম।
অভিনব গৌনিয়াল

2
@ jbutler483 হ্যাঁ এবং সেগুলি ছাঁটাই করা যেতে পারে। আপনার জন্য এমন অনেক সরঞ্জাম রয়েছে যা এখানে আপনার জন্য একটি রয়েছে github.com/svg/svgo
অভিনব গৌনিয়াল

6
@persijn এই উত্তরটি প্রয়োজনীয় svg পাথ সরবরাহ করে। আপনার আপত্তি কী তা সত্যিই আমার কোনও ধারণা নেই।
ব্যবহারকারী 428517

14

আপনি যদি এসভিজি ব্যবহার করতে পছন্দ করেন তবে আপনার পাথগুলি পড়তে হবে। আমি একটি এসভিজি সম্পাদকও পরামর্শ দেব।

<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="-0.05 0 1195.1 703" preserveAspectRatio="xMidYMid meet" zoomAndPan="disable" transform="">
    <defs id="svgEditorDefs">
        <line id="svgEditorLineDefs" stroke="black" style="fill: none; vector-effect: non-scaling-stroke; stroke-width: 1px;"/>
    </defs>
    <rect id="svgEditorBackground" x="0" y="0" width="1195" height="703" style="fill: none; stroke: none;"/>
    <path stroke="black" id="e1_circleArc" style="fill: none; stroke-width: 1px; vector-effect: non-scaling-stroke;" d="M 198 207 a 117.969 117.969 0 1 0 213 8" transform=""/>
    <path stroke="black" id="e4_circleArc" style="fill: none; stroke-width: 1px; vector-effect: non-scaling-stroke;" transform="" d="M 411.348 215.696 a 349.677 349.677 0 0 0 -110.37 -131.718"/>
    <path stroke="black" style="fill: none; stroke-width: 1px; vector-effect: non-scaling-stroke;" transform="matrix(-0.182706 -0.983168 0.983168 -0.182706 157.664 417.408)" id="e6_circleArc" d="M 301.799 202.299 a 329.763 329.763 0 0 0 -102.951 -124.781"/>
</svg>


1
আপনি ডিফএস ট্যাগের ভিতরে কেন একটি লাইন ব্যবহার করবেন? এবং আপনি কি এই পথটি এক পথে 3 + রেট না করে করতে পারেন?
পারসিজন

6

এখানে চারটি প্রগতিশীল সহজ এসভিজি টিয়ারড্রপ আকার রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

<svg viewbox="-20 -20 180 180">
  <g stroke="black" fill="none">
    
    <path transform="translate(0)"
     d="M   0  0
        C   0 10  10 17  10 27
        C  10 40 -10 40 -10 27
        C -10 17   0 10   0  0
        Z"/>

    <path transform="translate(40)"
     d="M   0  0
        C   0 16  15 25   5 34
        Q   0 38         -5 34
        C -15 25   0 16   0  0
        Z"/>
    
    <path transform="translate(80)"
     d="M   0  0
        C   0 10  18 36   0 36
        S          0 10   0  0
        Z"/>

    <path transform="translate(120)"
     d="M   0  0
        Q  18 36   0 36
        T          0  0
        Z"/>
    
    
    
    
    <g stroke-width="0.25" stroke="red">
      <g transform="translate(0)">
        <ellipse rx="1" ry="1" cx="0"   cy="0" />
        <ellipse rx="1" ry="1" cx="0"   cy="10"/>
        <ellipse rx="1" ry="1" cx="10"  cy="17"/>
        <ellipse rx="1" ry="1" cx="10"  cy="27"/>
        <ellipse rx="1" ry="1" cx="10"  cy="40"/>
        <ellipse rx="1" ry="1" cx="-10" cy="40"/>
        <ellipse rx="1" ry="1" cx="-10" cy="27"/>
        <ellipse rx="1" ry="1" cx="-10" cy="17"/>
        <line x1="0"   y1="0"  x2="0"   y2="10"/>
        <line x1="10"  y1="17" x2="10"  y2="40"/>
        <line x1="-10" y1="40" x2="-10" y2="17"/>
      </g>
      <g transform="translate(40)">
        <ellipse rx="1" ry="1" cx="0"   cy="0" />
        <ellipse rx="1" ry="1" cx="0"   cy="16"/>
        <ellipse rx="1" ry="1" cx="15"  cy="25"/>
        <ellipse rx="1" ry="1" cx="5"   cy="34"/>
        <ellipse rx="1" ry="1" cx="0"   cy="38"/>
        <ellipse rx="1" ry="1" cx="-5"  cy="34"/>
        <ellipse rx="1" ry="1" cx="-15" cy="25"/>
        <line x1="0"  y1="0"  x2="0"   y2="16"/>
        <line x1="15" y1="25" x2="0"   y2="38"/>
        <line x1="0"  y1="38" x2="-15" y2="25"/>
      </g>
      <g transform="translate(80)">
        <ellipse rx="1" ry="1" cx="0"   cy="0" />
        <ellipse rx="1" ry="1" cx="0"   cy="10"/>
        <ellipse rx="1" ry="1" cx="18"  cy="36"/>
        <ellipse rx="1" ry="1" cx="0"   cy="36"/>
        <ellipse rx="1" ry="1" cx="-18" cy="36" stroke="gray"/>
        <line x1="0"  y1="0"  x2="0"   y2="10"/>
        <line x1="18" y1="36" x2="0"   y2="36"/>
        <line x1="0"  y1="36" x2="-18" y2="36" stroke="gray" stroke-dasharray="0.5"/>
      </g>
      <g transform="translate(120)">
        <ellipse rx="1" ry="1" cx="0"   cy="0" />
        <ellipse rx="1" ry="1" cx="18"  cy="36"/>
        <ellipse rx="1" ry="1" cx="0"   cy="36"/>
        <ellipse rx="1" ry="1" cx="-18" cy="36" stroke="gray"/>
        <line x1="18" y1="36" x2="0"   y2="36"/>
        <line x1="0"  y1="36" x2="-18" y2="36" stroke="gray" stroke-dasharray="0.5"/>
      </g>
    </g>    
  </g>
  <g font-size="6" transform="translate(-1.5,-4)">
    <text x="-10" y="-8"># of unique points:</text>
    <text transform="translate(  0)">8</text>
    <text transform="translate( 40)">7</text>
    <text transform="translate( 80)">4</text>
    <text transform="translate(120)">3</text>
  </g>
</svg>

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