ডিভ ওভারলে পুরো পৃষ্ঠাটি তৈরি করুন (কেবল ভিউপোর্ট নয়)?


97

সুতরাং আমার একটি সমস্যা রয়েছে যা আমি মনে করি এটি বেশ সাধারণ তবে আমি এখনও এর একটি ভাল সমাধান খুঁজে পাইনি। আমি একটি ওভারলে ডিভটি পুরো পৃষ্ঠাটি কভার করতে চাই ... শুধু ভিউপোর্ট নয়। আমি বুঝতে পারছি না কেন এটি করা এত কঠিন ... আমি বডি, এইচটিএমএল উচ্চতা 100% ইত্যাদি স্থাপনের চেষ্টা করেছি তবে এটি কাজ করছে না। আমার এখন পর্যন্ত যা আছে তা এখানে:

<html>
<head>
    <style type="text/css">
    .OverLay { position: absolute; z-index: 3; opacity: 0.5; filter: alpha(opacity = 50); top: 0; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; background-color: Black; color: White;}
    body { height: 100%; }
    html { height: 100%; }
    </style>
</head>

<body>
    <div style="height: 100%; width: 100%; position: relative;">
        <div style="height: 100px; width: 300px; background-color: Red;">
        </div>
        <div style="height: 230px; width: 9000px; background-color: Green;">
        </div>
        <div style="height: 900px; width: 200px; background-color: Blue;"></div>
        <div class="OverLay">TestTest!</div>
    </div>


    </body>
</html> 

আমি জাভাস্ক্রিপ্টের একটি সমাধানের জন্য যদি উপস্থিত থাকে তবে এটির জন্যও আমি উন্মুক্ত থাকব তবে আমি কেবল কিছু সাধারণ সিএসএস ব্যবহার করব।


: আরো এখানে পড়তে পারবেন stackoverflow.com/questions/1938536/...
মার্কো Demaio

এই jQuery সঙ্গে বাস্তব জন্য করা যেতে পারে?
উইলিয়াম এন্টারিকেন

উত্তর:


228

ভিউপোর্টটি যে সমস্ত বিষয় তা গুরুত্বপূর্ণ তবে আপনি সম্ভবত স্ক্রল করার সময় পুরো ওয়েবসাইটটি অন্ধকার করে রাখতে চান। এই জন্য, আপনি position:fixedপরিবর্তে ব্যবহার করতে চান position:absolute। আপনার স্ক্রোল করার সাথে সাথে স্থিতিস্থাপক উপাদানটি স্থিতিশীল রাখবে, এমন ধারণা তৈরি করে যে পুরো শরীর অন্ধকার হয়ে গেছে।

উদাহরণ: http://jsbin.com/okabo3/edit

div.fadeMe {
  opacity:    0.5; 
  background: #000; 
  width:      100%;
  height:     100%; 
  z-index:    10;
  top:        0; 
  left:       0; 
  position:   fixed; 
}
<body>
  <div class="fadeMe"></div>
  <p>A bunch of content here...</p>
</body>

4
আমি ভুল হতে পারি, তবে আইই 6-এ স্থির কাজটি করব ?! আমি জানি সম্ভবত আর কেউ আই 6 এর জন্য খুব বেশি যত্ন করে না
মার্কো ডেমাইও

29
@ মার্কো নিশ্চিত নয় সত্যি কথা বলতে, যদি 10 বছরের পুরানো ব্রাউজারের জন্য সমর্থন স্পষ্টভাবে অনুরোধ না করা হয় তবে আমি আর বিরক্ত করব না :)
সাম্পসন

4
তো, ছেলেরা কীভাবে মোবাইল ডিভাইসে এটি করবেন? bradfrostweb.com/blog/mobile/fixed- অবস্থান
বোরিসকানসকি

4
+1 ধন্যবাদ! আমি ওভারলে এর উপরে একটি পপআপ উইন্ডো যুক্ত করে আপনার উদাহরণটি প্রসারিত করেছি: jsbin.com/okabo3/740
kol

আমি এই সমস্যাটি নিয়ে আসছি (যা অনেকগুলি প্লাগইন দ্বারা ব্যবহৃত হয়) আপনি যখন <select>আইওএসে কোনও উপাদান ক্লিক করেন এটি পুরো ভিউপোর্টটি সরিয়ে দেয় এবং মূলত সমস্ত কিছু ভেঙে দেয়। স্থির উপাদানগুলি সরানো হয়, যে জিনিসগুলিতে স্ক্রোলটি স্ক্রোল করা উচিত নয়, ইত্যাদি
বিিলনোহ

16
body:before {
    content: " ";
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.5);
}

4
সবচেয়ে ভাল সমাধান সেখানে। আপনি কেবলমাত্র শরীরের জন্য "ওভারলেড" ক্লাস টগল করুন এবং সেই ক্লাসনামের সাথে শরীরে উপরে স্টাইলিং প্রয়োগ করুন।
শিয়াতোস্লাভ জালিশচুক 4'13

4
দয়া করে এই উত্তরটি আরও ব্যাখ্যা করুন। আমি শিয়াতোস্লাভের মন্তব্য বুঝতে পারি না।
লনি সেরা

1

প্রথমত, আমার মনে হয় আপনি ভিউপোর্টটি কী তা ভুল বুঝেছেন। ব্রাউজার ওয়েব পৃষ্ঠাগুলি রেন্ডার করতে ব্যবহার করে এমন ভিউপোর্ট হ'ল অঞ্চল এবং কোনওভাবেই এই অঞ্চলটিকে ওভাররাইড করতে আপনার ওয়েবসাইটগুলি কোনওভাবেই তৈরি করতে পারবেন না।

দ্বিতীয়ত, এটি দেখে মনে হচ্ছে যে আপনার ওভারলে-ডিভটি পুরো ভিউপোর্টটি কভার করবে না কারণ আপনি দেহ এবং এইচটিএমএলে সমস্ত মার্জিন সরিয়ে ফেলতে হবে।

আপনার স্টাইলশিটের শীর্ষে এটি যুক্ত করার চেষ্টা করুন - এটি সমস্ত উপাদানগুলিতে সমস্ত মার্জিন এবং প্যাডিং পুনরায় সেট করে। আরও উন্নয়ন সহজ করে তোলে:

* { margin: 0; padding: 0; }

সম্পাদনা: আমি আপনার প্রশ্নটি আরও ভাল করে বুঝতে পেরেছি। Position: fixed; জোনাথন স্যাম্পসন যেমন লিখেছেন সম্ভবত আপনার পক্ষে কাজ করবে।


4
আপনার সবকিছু থেকে প্যাডিং এবং মার্জিনগুলি সরিয়ে নেওয়া উচিত নয় । বোতাম এবং ফর্ম ইনপুটগুলির মতো অনেক উপাদানের জন্য সেগুলি ফিরে পাওয়া সত্যিই শ্রমসাধ্য হতে পারে।
সাম্পসন

4
আমার মতে, ব্রাউজারগুলিতে সমস্ত কিছুর সাথে একই রকম আচরণ করার এটি কেবলমাত্র একটি সহজ উপায়। আই 5 এর সাথে অভিযোজিত হওয়ার আগে যেমনটি আগের মতো হয়েছিল ঠিক ততটাই আজ প্রয়োগ করা যাবে না, তবে আমি স্টাইলশিটে লেখার প্রথম জিনিসগুলির মধ্যে একটি হিসাবে এখনও এটি করি।
Systad

4
@ আরভ এটি আপনাকে কাছে পেয়েছে, তবে পরিবর্তে সময়-পরীক্ষিত রিসেট শীটটি ব্যবহার করা ভাল। পরীক্ষা করে দেখুন meyerweb.com/eric/tools/css/reset আরও তথ্যের জন্য - আপনি এটা ভালবাসা করব, আমি আপনাকে আশ্বস্ত :)
স্যাম্পসন

আমি এটি দেখেছি, এবং আমি কেবল মনে করি এটি খুব বড় :) :)
সায়স্টাড

4
@ আরভ রিসেটগুলি এত বড় নয় - সম্পূর্ণরূপে পুনরুদ্ধার করার চেষ্টা করুন *{}এবং আপনি আরও অনেক কিছু দেখতে পাবেন :)
স্যাম্পসন

0

আমি ওভারলেটি ঠিক জায়গায় রাখতে চেয়েছিলাম না কারণ আমি ওভারলেটির ভিতরে থাকা তথ্যটি পাঠ্যের উপরে স্ক্রোলযোগ্য হতে চেয়েছিলাম বলে আমার বেশ কিছুটা সমস্যা হয়েছিল। আমি ব্যবহার করতাম:

<html style="height=100%">
   <body style="position:relative">
      <div id="my-awesome-overlay" 
           style="position:absolute; 
                  height:100%; 
                  width:100%; 
                  display: block">
           [epic content here]
      </div>
   </body>
</html>

অবশ্যই মধ্যভাগে ডিভের জন্য কিছু বিষয়বস্তু এবং সম্ভবত একটি স্বচ্ছ ধূসর ব্যাকগ্রাউন্ডের প্রয়োজন তবে আমি নিশ্চিত আপনি সংক্ষেপটি পেয়ে যাবেন!


-6

আমি উপরে নেট বারের উত্তরটির দিকে চেয়েছিলাম, যা আপনার পছন্দ হয়েছে বলে মনে হয়েছে। এটি সহজ থেকে খুব আলাদা বলে মনে হচ্ছে না

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