আমার <div>
কিছু অভিনব ভিজ্যুয়াল সামগ্রী রয়েছে যা আমি পরিবর্তন করতে চাই না with আমি এটিকে একটি ক্লিকযোগ্য লিঙ্ক তৈরি করতে চাই।
আমি এর মতো কিছু খুঁজছি <a href="…"><div> … </div></a>
, তবে এটি বৈধ এক্সএইচটিএমএল 1.1।
div
অধীনে থাকা পুরোপুরি বৈধ a
।
আমার <div>
কিছু অভিনব ভিজ্যুয়াল সামগ্রী রয়েছে যা আমি পরিবর্তন করতে চাই না with আমি এটিকে একটি ক্লিকযোগ্য লিঙ্ক তৈরি করতে চাই।
আমি এর মতো কিছু খুঁজছি <a href="…"><div> … </div></a>
, তবে এটি বৈধ এক্সএইচটিএমএল 1.1।
div
অধীনে থাকা পুরোপুরি বৈধ a
।
উত্তর:
আমার যে আরও ভাল সমাধান সন্ধানের আশায় এখানে এসেছিল, তবে আমি এখানে অফারের যে কোনওটিকে পছন্দ করি না। আমি মনে করি আপনারা কেউ কেউ প্রশ্নটি ভুল বুঝেছেন। ওপি একটি লিঙ্কের মতো আচরণ করে একটি ডিভি পূর্ণ উপাদান তৈরি করতে চায়। এর একটি উদাহরণ ফেসবুক বিজ্ঞাপন হতে পারে - আপনি যদি তাকান তবে সেগুলি আসলে সঠিক মার্কআপ।
আমার জন্য কোনও নম্বর নেই: জাভাস্ক্রিপ্ট (কেবল কোনও লিঙ্কের জন্য প্রয়োজন হবে না এবং খুব খারাপ এসইও / অ্যাক্সেসিবিলিটি হওয়া উচিত); অবৈধ এইচটিএমএল।
সংক্ষেপে এটি:
<span></span>
না <span />
- ধন্যবাদ @ ক্যাম্পিকে)খালি স্প্যানে নিম্নলিখিত সিএসএস প্রয়োগ করুন:
{
position:absolute;
width:100%;
height:100%;
top:0;
left: 0;
z-index: 1;
/* fixes overlap error in IE7/8,
make sure you have an empty gif */
background-image: url('empty.gif');
}
এটি এখন প্যানেলটি কভার করবে এবং এটি কোনও <A>
ট্যাগের অভ্যন্তরে এটি একটি ক্লিকযোগ্য লিঙ্ক
<a><span></span></a>
উপাদানটির চেয়ে বেশি । জেন-ইনডেক্স সেট করা থাকলেও ধারকটির অভ্যন্তরের চিত্র এবং পাঠগুলি লিঙ্ক করবে না।
আপনি করতে পারবেন না div
একটি লিঙ্ক নিজেই, তবে আপনি একটি করতে পারেন <a>
হিসেবে ট্যাগ আইন block
, একই আচরণ <div>
করেছে।
a {
display: block;
}
তারপরে আপনি প্রস্থ এবং উচ্চতা সেট করতে পারেন।
এটি একটি প্রাচীন প্রশ্ন, তবে আমি ভেবেছিলাম যে আমি এর উত্তর দেব কারণ এখানে প্রত্যেকেরই কিছু পাগল সমাধান রয়েছে। এটি আসলে খুব সহজ ...
একটি অ্যাঙ্কর ট্যাগ এর মতো কাজ করে -
<a href="whatever you want"> EVERYTHING IN HERE TURNS INTO A LINK </a>
Sooo ...
<a href="whatever you want"> <div id="thediv" /> </a>
যদিও আমি নিশ্চিত নই যে এটি বৈধ কিনা। যদি এটি কথ্য সমাধানগুলির পিছনে যুক্তি হয় তবে আমি ক্ষমা চাই ...
<div>
না এতে কোনও ইন্টারেক্টিভ সামগ্রী (অন্যান্য <a>
উপাদান, <button>
উপাদান ইত্যাদি) থাকে না।
a
ট্যাগ যা করে তা সমস্ত পাঠ্যকে div
একটিতে নিয়ে যায় এবং এটি আন্ডারলাইন করে ... স্টাইলিংয়ের মাধ্যমে এটি প্রশমিত করা যেতে পারে তবে শীর্ষের উত্তরটি আরও ভাল।
a #thediv{font-weight:normal;text-decoration:none;}
আপনার প্রয়োজন সমস্ত স্টাইল অনুসারে।
একটু জাভাস্ক্রিপ্ট দরকার। তবে, আপনার div
ক্লিকযোগ্য হবে।
<div onclick="location.href='http://www.example.com';" style="cursor:pointer;"></div>
সর্বাধিক উত্সাহিত উত্তরের মতো এই বিকল্পটির জন্য খালি.gif প্রয়োজন হয় না:
এইচটিএমএল:
<div class="feature">
<a href="http://www.example.com"></a>
</div>
সিএসএস:
div.feature {
position: relative;
}
div.feature a {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-decoration: none; /* No underlines on the link */
z-index: 10; /* Places the link above everything else in the div */
background-color: #FFF; /* Fix to make div clickable in IE */
opacity: 0; /* Fix to make div clickable in IE */
filter: alpha(opacity=1); /* Fix to make div clickable in IE */
}
Http://www.digitalskydesign.com/how-to-make-an-entire-div-a-link-using-css/ এ প্রস্তাবিত
div.feature > a
ধরো যদি "অন্যান্য সমস্ত কিছু" অংশ একটি লিংক মধ্যে গভীর গোপন রয়েছে?
আপনি যা চান তা অর্জনের এটি একটি "বৈধ" সমাধান।
<style type="text/css">
.myspan {
display: block;
}
</style>
<a href="#"><span class="myspan">text</span></a>
তবে সম্ভবত আপনি যা চান তা হ'ল <a>
একটি ব্লক স্তরের উপাদান হিসাবে ট্যাগ প্রদর্শন করা।
আমি একটি হাইপারলিংক অনুকরণের জন্য জাভাস্ক্রিপ্ট ব্যবহার করার পরামর্শ দেব না কারণ এটি মার্কআপের বৈধতার উদ্দেশ্যকে পরাস্ত করে, যা শেষ পর্যন্ত অ্যাক্সেসিবিলিটি প্রচার করে (সঠিক শব্দার্থবিজ্ঞানের নীচে সঠিকভাবে গঠিত ডকুমেন্টগুলি প্রকাশের সম্ভাবনা হ্রাস করে একই ডকুমেন্টটি বিভিন্ন ব্রাউজারগুলির দ্বারা আলাদাভাবে ব্যাখ্যা করা হবে)।
এমন কোনও ওয়েব পৃষ্ঠা প্রকাশ করা ভাল যা বৈধতা দেয় না তবে জাভাস্ক্রিপ্ট অক্ষমকৃত সমস্ত ব্রাউজারগুলিতে যথাযথভাবে রেন্ডার এবং কাজ করে । তদ্ব্যতীত, onclick
ডিভটি কোনও লিঙ্ক হিসাবে কাজ করছে তা নির্ধারণ করতে কোনও স্ক্রিন পাঠকের জন্য অর্থপূর্ণ তথ্য সরবরাহ করে না।
সবচেয়ে পরিষ্কার উপায় হ'ল এইচটিএমএলে প্রবর্তিত ডেটা-ট্যাগগুলির সাথে jQuery ব্যবহার করা। এই সমাধানের সাহায্যে আপনি প্রতিটি ট্যাগে একটি লিঙ্ক তৈরি করতে পারেন। প্রথমে ডেটা-লিংক ট্যাগের সাহায্যে ট্যাগটি নির্ধারণ করুন (উদাহরণস্বরূপ Div):
<div data-link="http://www.google.at/">Some content in the div which is arbitrary</div>
আপনি এখন চাইলেও ডিভ স্টাইল করতে পারবেন। এবং আপনাকে "লিঙ্ক" -আলাইক আচরণের জন্য স্টাইলও তৈরি করতে হবে:
[data-link] {
cursor: pointer;
}
এবং শেষ পর্যন্ত এই jQuery কল পৃষ্ঠাতে রাখুন:
$(document).ready(function() {
$("[data-link]").click(function() {
window.location.href = $(this).attr("data-link");
return false;
});
});
এই কোড সহ jQuery পৃষ্ঠার প্রতিটি ট্যাগে একটি ক্লিক শ্রোতার প্রয়োগ করে যার একটি "ডেটা-লিঙ্ক" বৈশিষ্ট্য রয়েছে এবং ইউআরএলটিতে যা ডেটা-লিঙ্কের বৈশিষ্ট্যে রয়েছে পুনঃনির্দেশ করে।
এটি বৈধ কিনা নিশ্চিত না তবে এটি আমার পক্ষে কাজ করে।
কোড :
<div style='position:relative;background-color:#000000;width:600px;height:30px;border:solid;'>
<p style='display:inline;color:#ffffff;float:left;'> Whatever </p>
<a style='position:absolute;top:0px;left:0px;width:100%;height:100%;display:inline;' href ='#'></a>
</div>
আইপি 7 এবং সামনের দিকে পাঠকের উত্তরটির কাজ করতে, এটির জন্য কয়েকটি টুইট দরকার।
উপাদানটির কোনও ব্যাকগ্রাউন্ড-রঙ না থাকলে IE জেড-সূচককে সম্মান করবে না, সুতরাং লিঙ্কটি কন্টিগ ডিভের অংশগুলিকে ওভারল্যাপ করবে না, কেবল ফাঁকা অংশ। এটি ঠিক করতে অপেক্ষাকৃত 0 দিয়ে একটি পটভূমি যুক্ত করা হয়।
কোনও কারণে আই 7 এবং বিভিন্ন সামঞ্জস্যতা মোড সম্পূর্ণরূপে ব্যর্থ হয় যখন কোনও লিঙ্ক পদ্ধতির স্প্যানটি ব্যবহার করা হয়। তবে লিঙ্কটি যদি স্টাইল দেওয়া হয় তবে এটি ঠিক কাজ করে।
.blockLink
{
position:absolute;
top:0;
left: 0;
width:100%;
height:100%;
z-index: 1;
background-color:#ffffff;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity:0;
}
<div style="position:relative">
<some content>
<a href="somepage" class="blockLink" />
<div>
আপনি একটি অ্যাঙ্কর মোড়ানো দিয়েও চেষ্টা করতে পারেন, তারপরে তার দৈর্ঘ্য এবং প্রস্থকে একইরূপে পরিণত করতে পারেন। এটি আমার পক্ষে নিখুঁতভাবে কাজ করে।
<div id="css_ID">
<a href="http://www.your_link.com" style="display:block; height:100%; width:100%;"></a>
</div>
কেন না? use <a href="bla"> <div></div> </a>
এইচটিএমএল 5 এ কাজ করে
<div><span></span></div>
বৈধ এবং <span><div></div></span>
না। আপনার display: inline;
আইটেমের মধ্যে ধরণের আইটেম রাখা উচিত নয় display: block;
। <a>
ট্যাগ ইনলাইন বাক্স।
<a><div></div></a>
বৈধ এবং কাজ করার সময় , বৈধ নয় এবং কাজ <a><div><a></a></div></a>
করে না।
এই পোস্টটি আমি পুরান জানি তবে আমার ঠিক একই সমস্যাটি সমাধান করতে হয়েছিল কারণ কেবলমাত্র ব্লকে সেট সেট সাথে একটি সাধারণ লিঙ্ক ট্যাগ লিখলে আইআইতে পুরো ডিভ ক্লিকযোগ্য হয় না। সুতরাং এই সমস্যাটিকে JQuery ব্যবহার না করার চেয়ে সহজ সরানোর জন্য।
প্রথমে আমাদের বুঝতে হবে কেন এটি ঘটে: IE খালি ডিভি ক্লিকযোগ্য করে তুলবে না এটি কেবল সেই ডিভ / ট্যাগের মধ্যে পাঠ্য / চিত্র তৈরি করে।
সমাধান: বকগ্রাউন্ড চিত্রের সাথে ডিভিটি পূরণ করুন এবং এটি দর্শকের কাছ থেকে আড়াল করুন।
কিভাবে? আপনি ভাল প্রশ্ন জিজ্ঞাসা, এখন শুনুন। ট্যাগটিতে এই ব্যাকআউন্ড শৈলী যুক্ত করুন
> "background:url('some_small_image_path')
> -2000px -2000px no-repeat;"
এবং সেখানে আপনার কাছে এটি সম্পূর্ণ ডিভ এখন ক্লিকযোগ্য। এটি আমার পক্ষে আমার ফটো গ্যালারীটির জন্য এটি ব্যবহার করার সর্বোত্তম উপায় ছিল যা ব্যবহারকারীর চিত্রের অর্ধেক অংশে বাম / ডানদিকে যেতে পারে এবং তারপরে একটি ছোট চিত্রও ঠিক দর্শনীয় প্রভাবের জন্য রাখে। সুতরাং আমার জন্য আমি যাই হোক না কেন ব্যাকগ্রাউন্ড চিত্র হিসাবে বাম এবং ডান চিত্র ব্যবহার!
ব্লকটিতে কেবল লিঙ্কটি রয়েছে এবং এটি jquery দিয়ে বাড়িয়ে দিন। এটি জাভাস্ক্রিপ্ট ব্যতীত যে কারও জন্য 100% গ্রেফতারের সাথে হ্রাস করে। এইচটিএমএল দিয়ে এটি করা সত্যিই সেরা সমাধান নয় im উদাহরণ স্বরূপ:
<div id="div_link">
<h2><a href="mylink.htm">The Link and Headline</a></h2>
<p>Some more stuff and maybe another <a href="mylink.htm">link</a>.</p>
</div>
তারপরে ব্লকটিকে ক্লিকযোগ্য করে তোলার জন্য ওয়েব ব্যবহার করুন ( ওয়েব ডিজাইনারের প্রাচীরের মাধ্যমে ):
$(document).ready(function(){
$("#div_link").click(function(){
window.location=$(this).find("a").attr("href"); return false;
});
});
তারপরে আপনাকে যা করতে হবে তা হ'ল ডিভের সাথে কার্সার শৈলী যুক্ত করা
#div_link:hover {cursor: pointer;}
বোনাস পয়েন্টগুলির জন্য জাভাস্ক্রিপ্টটি ডিভ, বা বডি বা যে কোনও কিছুতে 'js_enable' ক্লাস যুক্ত করে সক্ষম করা থাকলে এই স্টাইলগুলি প্রয়োগ করুন।
এটি আমার পক্ষে কাজ করেছে:
এইচটিএমএল:
<div>
WHATEVER YOU WANT
<a href="YOUR LINK HERE">
<span class="span-link"></span>
</a>
</div>
সিএসএস:
.span-link {
position:absolute;
width:100%;
height:100%;
top:0;
left: 0;
z-index: 9999;
}
এটি একটি অদৃশ্য উপাদান (স্প্যান) যুক্ত করে, যা আপনার পুরো ডিভকে covers েকে দেয় এবং জেড-ইনডেক্সে আপনার পুরো ডিভের উপরে থাকে , সুতরাং যখন কেউ সেই ডিভের উপর ক্লিক করেন, ক্লিকটি মূলত আপনার অদৃশ্য "স্প্যান" স্তর দ্বারা বাধা হয়ে থাকে, যা লিঙ্কযুক্ত।
দ্রষ্টব্য: আপনি যদি ইতিমধ্যে অন্যান্য উপাদানগুলির জন্য জেড-সূচকগুলি ব্যবহার করছেন তবে কেবলমাত্র নিশ্চিত করুন যে এই জেড-ইনডেক্সের মানটি আপনি যেটি "শীর্ষে" রাখতে চান তার চেয়ে বেশি।
আসলে আপনার এই মুহূর্তে জাভাস্ক্রিপ্ট কোড অন্তর্ভুক্ত করা দরকার, এটি করার জন্য এই টিউটোরিয়ালটি দেখুন ।
তবে একটি সিএসএস কোড ব্যবহার করে এটি অর্জনের একটি কৌশলপূর্ণ উপায় আছে আপনার ডিভ ট্যাগের ভিতরে আপনাকে অবশ্যই একটি অ্যাঙ্কর ট্যাগ বাসাতে হবে এবং আপনাকে অবশ্যই এই সম্পত্তিটি প্রয়োগ করতে হবে,
display:block;
আপনি যখন এটি সম্পন্ন করেছেন, এটি পুরো প্রস্থ অঞ্চলকে ক্লিকযোগ্য করে তুলবে (তবে অ্যাঙ্কর ট্যাগের উচ্চতার মধ্যে), আপনি যদি পুরো ডিভ অঞ্চলটি coverাকাতে চান তবে আপনাকে অবশ্যই অ্যাঙ্কর ট্যাগের উচ্চতাটি ঠিক উচ্চতার মধ্যে নির্ধারণ করতে হবে ডিভি ট্যাগ, উদাহরণস্বরূপ:
height:60px;
এটি পুরো অঞ্চলটিকে ক্লিকযোগ্য করে তুলবে, তারপরে text-indent:-9999px
লক্ষ্য অর্জনের জন্য আপনি অ্যাঙ্কর ট্যাগটিতে আবেদন করতে পারেন ।
এটি সত্যই জটিল এবং সহজ এবং এটি কেবলমাত্র সিএসএস কোড ব্যবহার করে তৈরি করা হয়েছে।
এখানে একটি উদাহরণ : http://jsfiddle.net/hbirjand/RG8wW/
এটি বিবিসি ওয়েবসাইট এবং গার্ডিয়ান হিসাবে ব্যবহৃত হিসাবে এটি করার সেরা উপায়:
আমি এখানে কৌশলটি পেয়েছি: http://codepen.io/IschaGast/pen/Qjxpxo
heres এইচটিএমএল
<div class="highlight block-link">
<h2>I am an example header</h2>
<p><a href="pageone" class="block-link__overlay-link">This entire box</a> links somewhere, thanks to faux block links. I am some example text with a <a href="pagetwo">custom link</a> that sits within the block</p>
</div>
সিএসএস এখানে
/**
* Block Link
*
* A Faux block-level link. Used for when you need a block-level link with
* clickable areas within it as directly nesting a tags breaks things.
*/
.block-link {
position: relative;
}
.block-link a {
position: relative;
z-index: 1;
}
.block-link .block-link__overlay-link {
position: static;
&:before {
bottom: 0;
content: "";
left: 0;
overflow: hidden;
position: absolute;
right: 0;
top: 0;
white-space: nowrap;
z-index: 0;
}
&:hover,
&:focus {
&:before {
background: rgba(255,255,0, .2);
}
}
}
<a href="…" style="cursor: pointer;"><div> … </div></a>
আপনি নিম্নলিখিত পদ্ধতি দ্বারা আপনার ডিভের একটি লিঙ্ক দিতে পারেন:
<div class="boxdiv" onClick="window.location.href='https://www.google.co.in/'">google</div>
<style type="text/css">
.boxdiv {
cursor:pointer;
width:200px;
height:200px;
background-color:#FF0000;
color:#fff;
text-align:center;
font:13px/17px Arial, Helvetica, sans-serif;
}
</style>
আপনি একটি href ট্যাগ দিয়ে উপাদানটি ঘিরে রাখতে পারেন বা আপনি jquery এবং ব্যবহার করতে পারেন
$('').click(function(e){
e.preventDefault();
//DO SOMETHING
});
এটি সহজতম উপায়।
বলুন, এটি সেই div
ব্লকটি আমি ক্লিকযোগ্য করে তুলতে চাই:
<div class="inner_headL"></div>
সুতরাং href
নিম্নলিখিত হিসাবে একটি রাখুন :
<a href="#">
<div class="inner_headL"></div>
</a>
কেবলমাত্র div
ব্লককে একটি সাধারণ এইচটিএমএল উপাদান হিসাবে বিবেচনা করুন এবং সাধারণ একটি href
ট্যাগ সক্ষম করুন ।
এটি কমপক্ষে এফএফ-তে কাজ করে।
যদিও আমি কোনও পরিস্থিতিতে এটি করার পরামর্শ দিচ্ছি না, এখানে এমন কিছু কোড রয়েছে যা একটি লিঙ্কে ডিআইভি তৈরি করে (দ্রষ্টব্য: এই উদাহরণটি jQuery ব্যবহার করে এবং সরলতার জন্য নির্দিষ্ট মার্কআপ সরানো হয়েছে):
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("div[href]").click(function () {
window.location = $(this).attr("href");
});
});
</script>
<div href="http://www.google.com">
My Div Link
</div>
একটি বিকল্প যা উল্লেখ করা হয়নি তা হ'ল ফ্লেক্স ব্যবহার করা। ট্যাগ প্রয়োগ flex: 1
করে a
, এটি ধারক ফিট করতে প্রসারিত।
div {
height: 100px;
width: 100px;
display: flex;
border: 1px solid;
}
a {
flex: 1;
}
<div>
<a href="http://google.co.uk">Link</a>
</div>
আমি একটি পরিবর্তনশীল টানছি কারণ ব্যবহারকারীটি কী রেকর্ডটি আসবে তার উপর নির্ভর করে আমার লিঙ্কে কিছু মান পরিবর্তন হবে। এটি পরীক্ষার জন্য কাজ করেছে:
<div onclick="location.href='page.html';" style="cursor:pointer;">...</div>
এবং এটিও কাজ করে:
<div onclick="location.href='<%=Webpage%>';" style="cursor:pointer;">...</div>
আমার স্মার্ট প্যান্ট উত্তর:
"এর বিরক্তিজনক উত্তর:" ব্লক স্তরের উপাদানকে কীভাবে হাইপার লিঙ্ক তৈরি করতে হবে এবং এক্সএইচটিএমএল 1.1 এ বৈধতা দিন "
এইচটিএমএল 5 ডক্টইপিটি ডিটিডি ব্যবহার করুন। "
প্রকৃতপক্ষে ie7 এর জন্য সত্য ধরে নি
onclick="location.href='page.html';"
IE7-9, Chrome, সাফারি, ফায়ারফক্স,
যদি কেবল সবকিছুই সহজ হতে পারে ...
#logo {background:url(../global_images/csg-4b15a4b83d966.png) no-repeat top left;background-position:0 -825px;float:left;height:48px;position:relative;width:112px}
#logo a {padding-top:48px; display:block;}
<div id="logo"><a href="../../index.html"></a></div>
বাক্সের বাইরে একটু ভাবুন ;-)