"অবস্থান: পরম" জোর করে নথিটির সাথে সম্পর্কিত হতে পিতামাত্রে ধারক নয়


93

আমি শরীরের কোনও অংশে একটি ডিভ .োকানোর চেষ্টা করছি এবং position: absoluteএটি সম্পূর্ণ নথির সাথে সম্পর্কিত করতে চাই এবং এটির কোনও মূল উপাদান নয় position: relative


যদি এর অবস্থানটি নথির সাথে নিখুঁতভাবে সম্পর্কিত হয়, তবে তা <body>ট্যাগের শিশু হিসাবে সম্পর্কিত , না?
জিম গ্যারিসন

আপনি কি আমার সমাধানটি নীচে দেখেছেন?
tw16

হ্যাঁ আমি একটি টেমপ্লেট তৈরি করছি যা প্রচুর পৃষ্ঠায় ব্যবহৃত হয় এবং কখনও কখনও এটির তুলনামূলকভাবে অবস্থানযুক্ত উপাদানের অভ্যন্তরে (যা আমি নিয়ন্ত্রণ করতে পারি না I এখন আমি দেখতে পাচ্ছি যে এটি অসম্ভব। আপনাকে সাহায্য করার জন্য ধন্যবাদ me আমার কাছ থেকে, এবং আমি এটি হিসাবে চিহ্নিত করব) আপনার
উত্তরটিতে

উত্তর:


36

আপনাকে উপাদানটির divবাইরে position:relativeএবং ভিতরে রাখতে হবে body


4
এই। যদি এটি একেবারে অবস্থিত থাকে তবে এটি অপেক্ষাকৃত অবস্থানগত উপাদানের ভিতরে রাখার সত্যিই কোনও কারণ নেই।
ডুমোনিয়াক

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

4
@ ডোমেনিয়াক একটি নিখুঁত উপাদানকে আপেক্ষিক উপাদানে রাখার কারণ হ'ল আপেক্ষিক উপাদানটির তুলনায় পরম ডিভের অবস্থান। আপনি যদি দেহের সাথে তুলনামূলক অবস্থান রাখতে চান তবে ডিফল্টরূপে দেহটি আপেক্ষিক, এমনকি যদি সেভাবে সেট না করা থাকে।
জেসন ফোগলিয়া

19
অন্য ধারক সন্তানের সন্তানের হওয়ার জন্য আপনার ধারক হওয়ার দরকার রয়েছে এমন কয়েকশ কারণ থাকতে পারে তবে অবস্থানটি নথির সাথে নিখুঁত হওয়া উচিত। এটি সরাসরি শরীরে অন্তর্ভুক্ত করার মতো উত্তর ভুল। সঠিক উত্তর হল অবস্থান: স্থির। ডাউনভোটড
ওয়ালভ

4
@ ওয়ালভ: position:fixedএবং position:absoluteএকইরকম ব্যবহার হয় না। স্থির করা ভিউপোর্টের সাথে সম্পর্কিত (দস্তাবেজ নয়) এবং সম্ভাব্য ওভারল্যাপগুলি স্ক্রোল করার পরেও আইটেমটি সর্বদা দৃশ্যমান হওয়ার কারণ ঘটবে that সিএসএস, আমার উত্তরটি সঠিক। এটিকে নথির সাথে সম্পর্কিত করার একমাত্র উপায় হ'ল এটি position:relativeউপাদান থেকে সরিয়ে নেওয়া ।
tw16

95

আপনি খুঁজছেন position: fixed

এমডিএন থেকে :

উপাদানটির ব্লকটি ভিউপোর্টের ব্যতিক্রমের সাথে স্থির অবস্থান স্থির অবস্থানের মতো। এটি প্রায়শই একটি ভাসমান উপাদান তৈরি করতে ব্যবহৃত হয় যা পৃষ্ঠা স্ক্রোল করার পরেও একই অবস্থানে থেকে যায়।


28
এই উত্তরটির সাথে সমস্যাটি হ'ল ব্যবহারকারী নিখুঁতভাবে ব্যবহার করতে চেয়েছিল কারণ স্থির উপাদানগুলি স্ক্রোলের উপর চলাচল করে না এবং নিখুঁত উপাদানগুলি না :)
একটি বন্ধু

4
আপনি পরম কিংবদন্তি।
বেনিসবার্গে

6
প্রশ্নটি ছিল কীভাবে দস্তাবেজের সাথে সম্পর্কিত হবে এবং ভিউপোর্ট নয়
পল হামফ্রেস

স্ট্যাকিং প্রসঙ্গে একটি বাগের কারণে এটি সম্ভবত 11-এ সমস্যা সৃষ্টি করতে পারে
জেমস ওয়েস্টগেট

32

আমার সমাধানটি হল এর পিতামাতার বাইরে ডিভ সরানোর জন্য jQuery ব্যবহার করা:

<script>
    jQuery(document).ready(function(){
        jQuery('#loadingouter').appendTo("body");
    });
</script>

<div id="loadingouter"></div>

4
এটি আমার সমস্যার সমাধান করেছে কারণ আমি নিজের উপাদানটি সরাসরি শরীরের উপাদানের ভিতরে রাখতে পারি না কারণ আমি মাস্টার পৃষ্ঠা ব্যবহার করছিলাম। ধন্যবাদ!
অস্প্রে

9

আপনি যদি উপাদানটি সংযুক্ত করতে না চান bodyতবে নিম্নলিখিত সমাধানটি কাজ করবে।

আমি এই প্রশ্নের কাছে এমন একটি সমাধান খুঁজছিলাম যা শরীরে ডিভ সংযুক্ত না করে কাজ করবে, কারণ আমার একটি মাউসওভার স্ক্রিপ্ট ছিল যা আমি চালাতে চেয়েছিলাম যখন মাউস নতুন উপাদান এবং এটির উত্পন্ন উপাদান উভয়ের উপরে ছিল। যতক্ষণ আপনি jQuery ব্যবহার করতে ইচ্ছুক এবং @ লিয়াম উইলিয়ামের উত্তরে অনুপ্রাণিত:

var leftOffset = <<VALUE>>;
var topOffset = <<VALUE>>;
$(element).css("left", leftOffset - element.offset().left);
$(element).css("top", topOffset - element.offset().top);

এই দ্রবণটি উপাদানটির বর্তমান বাম এবং উপরের অবস্থান (দেহের সাথে তুলনামূলক) বিয়োগ করে কাজ করে যাতে উপাদানটিকে 0, 0 এ স্থানান্তরিত করতে পারে। আপনি শরীরের সাথে যেখানেই চান সেখানে উপাদান স্থাপন করা বাম এবং উপরের অফসেট যুক্ত করার মতোই সহজ মান।


4
এছাড়াও jQueryUI অবস্থানের ফাংশনটি উল্লেখযোগ্য mentioning
মাইকেল.লুমলি

8

এটি কেবল সিএসএস এবং এইচটিএমএল দিয়ে সম্ভব নয়।

জাভাস্ক্রিপ্ট / jQuery ব্যবহার করে আপনি সম্ভাব্যভাবে jQuery.offset()DOM এ উপাদানগুলি পেতে এবং jQuery.position()এটি পৃষ্ঠায় কোথায় প্রদর্শিত হবে তা গণনা করার সাথে এটি তুলনা করতে পারেন।


আইএমএইচও এই উত্তরটি সবচেয়ে সহায়ক - এটি কেবলমাত্র শরীরের নীচে উপাদানটি সরানো ছাড়াই (যা সর্বদা সম্ভব হয় না) এবং অবস্থান স্থির ব্যবহার না করে যা উপাদানটিকে সর্বদা প্রদর্শিত হবে এমনকি যখন আমরা কেবল জেএসে অবলম্বন করতে পারি তখনই উপাদানটি সর্বদা প্রদর্শিত হবে। jQuery.offset({ left: 0 })জয়ের জন্য!
জন্ম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.