উত্তর:
সীমান্তহীন ইনপুট ফিল্ডের চারপাশে সীমানা যুক্ত স্প্যান ব্যবহার করে একটি নির্দিষ্ট উপসর্গ বা প্রত্যয় সহ একটি ইনপুট ক্ষেত্রের অনুকরণ বিবেচনা করুন। এখানে একটি বেসিক কিক অফ উদাহরণ রয়েছে:
.currencyinput {
border: 1px inset #ccc;
}
.currencyinput input {
border: 0;
}
<span class="currencyinput">$<input type="text" name="currency"></span>
একটি পিতামাতার .input-icon
ডিভ ব্যবহার করুন । Ptionচ্ছিকভাবে যুক্ত করুন .input-icon-right
।
<div class="input-icon">
<input type="text">
<i>$</i>
</div>
<div class="input-icon input-icon-right">
<input type="text">
<i>€</i>
</div>
transform
এবং সাথে আইকোনটি উল্লম্বভাবে সারিবদ্ধ করুন top
এবং সেট pointer-events
করুন none
যাতে ক্লিকগুলি ইনপুটটিতে ফোকাস করে। সামঞ্জস্যবিধান padding
এবং width
যথাযথ হিসাবে:
.input-icon {
position: relative;
}
.input-icon > i {
position: absolute;
display: block;
transform: translate(0, -50%);
top: 50%;
pointer-events: none;
width: 25px;
text-align: center;
font-style: normal;
}
.input-icon > input {
padding-left: 25px;
padding-right: 0;
}
.input-icon-right > i {
right: 0;
}
.input-icon-right > input {
padding-left: 0;
padding-right: 25px;
text-align: right;
}
গৃহীত উত্তরের মতো নয়, এটি কোনও ত্রুটি হলে লাল সীমান্তের মতো হাইডাইলিং ইনপুট বৈধতা ধরে রাখবে।
float:left
থেকে input-symbol
DIV আছে
input-symbol
float
খারাপ তাই আমি এখনকার display:inline-block
সাথে একত্রিত হয়ে ব্যবহার করছি vertical-align:bottom
:) আমি দ্রুত
আপনি নিজের ইনপুট ক্ষেত্রটিকে স্প্যানে গুটিয়ে রাখতে পারেন, যা আপনি position:relative;
। তারপরে আপনি
:before
content:"€"
আপনার মুদ্রার প্রতীকটি যুক্ত করুন এবং এটি তৈরি করুন position:absolute
। ওয়ার্কিং জেএসফিডাল
এইচটিএমএল
<span class="input-symbol-euro">
<input type="text" />
</span>
সিএসএস
.input-symbol-euro {
position: relative;
}
.input-symbol-euro input {
padding-left:18px;
}
.input-symbol-euro:before {
position: absolute;
top: 0;
content:"€";
left: 5px;
}
আপডেট আপনি যদি পাঠ্য বাক্সের বাম বা ডানদিকে ইউরো চিহ্নটি রাখতে চান। ওয়ার্কিং জেএসফিডাল
এইচটিএমএল
<span class="input-euro left">
<input type="text" />
</span>
<span class="input-euro right">
<input type="text" />
</span>
সিএসএস
.input-euro {
position: relative;
}
.input-euro.left input {
padding-left:18px;
}
.input-euro.right input {
padding-right:18px;
text-align:end;
}
.input-euro:before {
position: absolute;
top: 0;
content:"€";
}
.input-euro.left:before {
left: 5px;
}
.input-euro.right:before {
right: 5px;
}
যেহেতু আপনি ব্যবহার করতে পারবেন না ::before
সঙ্গে content: '$'
ইনপুট এবং একটি একেবারে স্থান উপাদান যোগ করার অতিরিক্ত এইচটিএমএল যোগ করে - আমি একটি ব্যাকগ্রাউন্ড করা SVG ইনলাইন সিএসএস করতে পছন্দ করি।
এইটার মতো কিছু একটা হচ্ছে:
input {
width: 85px;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='16px' width='85px'><text x='2' y='13' fill='gray' font-size='12' font-family='arial'>$</text></svg>");
padding-left: 12px;
}
এটি নিম্নলিখিত ফলাফলগুলি:
দ্রষ্টব্য: কোডটি অবশ্যই একটি লাইনে থাকতে হবে। আধুনিক ব্রাউজারগুলিতে সমর্থনটি বেশ ভাল, তবে পরীক্ষাটি নিশ্চিত করে নিন।
background-repeat: no-repeat;
ইনপুট বাক্সে $ পুনরাবৃত্তি হওয়ায় আমি যুক্তটি শেষ করেছি ।
background-image
সমর্থিত নাও হতে পারে, বা ব্রাউজারটি সিস্টেম-সরবরাহিত উইজেটগুলি ব্যবহার না করে নিজেই উইজেটটি রেন্ডার করতে পারে।
আমি এখনও একটি সংখ্যা হিসাবে থাকা টাইপটির প্রয়োজন শেষ করেছিলাম, তাই সিএসএস ব্যবহার করে ডলার সাইন ইনপুট ক্ষেত্রে ধাক্কা দিতে পরম অবস্থান ব্যবহার করে।
<div>
<span style="position: absolute; margin-left: 1px; margin-top: 1px;">$</span>
<input type="number" style="padding-left: 8px;">
</div>
'$' এর ভিতরে না রেখে পাঠ্য ইনপুট ক্ষেত্রের সামনে রাখুন। এটি সাংখ্যিক ডেটার জন্য বৈধতা অনেক সহজ করে তোলে কারণ আপনাকে জমা দেওয়ার পরে '$' পার্স করতে হবে না।
আপনি, জিকুয়েরি.অলদিয়েট () (বা অন্যান্য) দিয়ে মুদ্রা পরিচালনা করে এমন কিছু ক্লায়েন্ট-সাইড বৈধকরণের বিধি যুক্ত করতে পারেন। এটি আপনাকে ইনপুট ক্ষেত্রে '$' রাখতে দেয় have তবে আপনাকে সুরক্ষার জন্য এখনও সার্ভার-সাইড বৈধতা করতে হবে এবং এটি আপনাকে '$' অপসারণের অবস্থানে ফিরিয়ে দেয়।
$<input name="currency">
আরও দেখুন: পাঠ্যবক্সে ইনপুট সীমাবদ্ধ করে: কেবলমাত্র সংখ্যা এবং দশমিক পয়েন্টকে মঞ্জুরি দেয়
আপনার যদি কেবল সাফারি সমর্থন করার প্রয়োজন হয় তবে আপনি এটি এটি করতে পারেন:
input.currency:before {
content: attr(data-symbol);
float: left;
color: #aaa;
}
এবং একটি ইনপুট ক্ষেত্র
<input class="currency" data-symbol="€" type="number" value="12.9">
এইভাবে আপনার অতিরিক্ত ট্যাগ লাগবে না এবং চিহ্নআপের মধ্যে চিহ্নের তথ্য রাখবেন।
আরেকটি সমাধান যা আমি পছন্দ করি তা হ'ল মুদ্রা প্রতীকের একটি চিত্রের জন্য অতিরিক্ত ইনপুট উপাদান ব্যবহার করা। অনুসন্ধানের পাঠ্য ক্ষেত্রের মধ্যে ম্যাগনিফাইং গ্লাসের চিত্র ব্যবহার করে এখানে একটি উদাহরণ দেওয়া হয়েছে:
এইচটিএমএল:
<input type="image" alt="Subscribe" src="/graphics/icons/search-button.png">
<input type="text" placeholder="Search" name="query">
CSS:
#search input[type="image"] {
background-color: transparent;
border: 0 none;
margin-top: 10px;
vertical-align: middle;
margin: 5px 0 0 5px;
position: absolute;
}
বাম পাশের বারের ইনপুটটিতে এটি ফলাফল:
আমি সবেমাত্র ব্যবহার করেছি: পূর্বে ইনপুট দিয়ে এবং সামগ্রী হিসাবে পাস করেছি
input{
margin-left: 20px;
}
input:before {
content: "$";
position: absolute;
}
.currencyinput {
border: 1px inset #ccc;
padding-bottom: 1px;//FOR IE & Chrome
}
.currencyinput input {
border: 0;
}
<span class="currencyinput">$<input type="text" name="currency"></span>
আপনি যদি কোনও ইনপুট ফর্মের অন্যান্য পাঠ্য ক্ষেত্রের সাথে বাম সীমানাটি সারিবদ্ধ করার বিষয়ে উদ্বিগ্ন হন তবে এই উত্তরগুলির কোনওটিই সত্যিই সহায়তা করে না।
আমি ডলার চিহ্নটি পুরোপুরি বাম দিকে -10px বা 5px বামে স্থির করার প্রস্তাব দিই (আপনি এটি ইনপুট বাক্সের ভিতরে বা বাইরে চান কিনা তা নির্ভর করে)। অভ্যন্তরীণ সমাধানটির জন্য দিকনির্দেশ প্রয়োজন: ইনপুট সিএসএসে rtl।
দিকটি এড়াতে আপনি ইনপুটটিতে প্যাডিং যুক্ত করতে পারেন: আরটিএল, তবে এটি একই প্রস্থের অন্যান্য পাত্রে মেলে না এমন ইনপুট ধারকটির প্রস্থকে পরিবর্তন করবে।
<div style="display:inline-block">
<div style="position:relative">
<div style="position:absolute; left:-10px;">$</div>
</div>
<input type='text' />
</div>
অথবা
<div style="display:inline-block">
<div style="position:relative">
<div style="position:absolute; left:5px;">$</div>
</div>
<input type='text' style='direction: rtl;' />
</div>
https://i.imgur.com/ajrU0T9.png
উদাহরণ: https://plnkr.co/edit/yshyuRMd06K1cuN9tFDv?p= পূর্বরূপ
<style>
.currencyinput {
border: 1px inset #ccc;
border-left:none;
}
.currencyinput input {
border: 0;
}
</style>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input type="text" oninput="this.value = this.value.replace(/[^0-9]/.g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" style="text-align:right;border-right:none;outline:none" name="currency"><span class="currencyinput">%</span>
</body>
</html>
%
হ্যাঁ, আপনি যদি বুটস্ট্র্যাপ ব্যবহার করেন তবে এটি কার্যকর হবে।
.form-control input {
border: none;
padding-left: 4px;
}
এবং
<span class="form-control">$ <input type="text"/></span>
.currencyinput {
border: 1px inset #ccc;
border-left:none;
}
.currencyinput input {
border: 0;`enter code here`
}
<input type="text" oninput="this.value = this.value.replace(/[^0-9]/.g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" style="text-align:right;border-right:none;outline:none" name="currency"><span class="currencyinput">%</span>