আমি কি কেবল একটি ডিভের পটভূমির চিত্রের জন্য অস্পষ্টতা সেট করতে পারি?


89

বলি আমার আছে

<div class="myDiv">Hi there</div>

আমি লাগাতে চান background-imageএবং এটি একটি দিতে opacityএর 0.5- কিন্তু আমি চাই যে পাঠ্য আমি লিখেছি পূর্ণ অস্বচ্ছতা থাকবে ( 1)।

আমি যদি এইভাবে সিএসএস লিখতাম

.myDiv { opacity:0.5 }

সমস্ত কিছুই স্বচ্ছতার মধ্যে থাকবে - এবং আমি এটি চাই না।

সুতরাং আমার প্রশ্নটি হল - আমি কীভাবে সম্পূর্ণ অস্বচ্ছ পাঠ্যের সাথে স্বল্প-অস্বচ্ছ ব্যাকগ্রাউন্ড চিত্র পেতে পারি?


stackoverflow.com/questions/6624457/… নোট করুন যে আমি সেখানে মন্তব্য করেছি (ফিলের উত্তরের অধীনে) এটি CSS এর অস্বচ্ছতার সাথে করার উপায় দেখায়, যদি এটি পছন্দসই উপায় হয়। ( jsfiddle.net/4tTNZ )
জুনাস

এই উত্তরটি অনেক বেশি সংক্ষিপ্ত এবং আমার বিশ্বাস ঠিক একই রকম।
অ্যালেন

উত্তর:


104

না, এই কাজটি করা যায় না opacity এটির উপাদানগুলি সহ পুরো উপাদানকে প্রভাবিত করে এবং এই আচরণ পরিবর্তন করার কোনও উপায় নেই। নিম্নলিখিত দুটি পদ্ধতির সাহায্যে আপনি এটিকে ঘিরে কাজ করতে পারেন।

মাধ্যমিক ডিভ

divপটভূমি ধরে রাখতে ধারকটিতে অন্য একটি উপাদান যুক্ত করুন । এটি সর্বাধিক ক্রস-ব্রাউজারের বন্ধুত্বপূর্ণ পদ্ধতি এবং আই আই 6 তেও কাজ করবে।

এইচটিএমএল

<div class="myDiv">
    <div class="bg"></div>
    Hi there
</div>

সিএসএস

.myDiv {
    position: relative;
    z-index: 1;
}

.myDiv .bg {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: url(test.jpg) center center;
    opacity: .4;
    width: 100%;
    height: 100%;
}

দেখুন jsFiddle উপর পরীক্ষা ক্ষেত্রে

: পূর্বে এবং :: সিউডো-এলিমেন্টের আগে

আর একটি কৌশলটি সিএসএস 2.1 :beforeবা সিএসএস 3 ::beforeসিউডো-উপাদানগুলি ব্যবহার করা। :beforeসিউডো-এলিমেন্টটি ভার্সন 8 থেকে আইই-তে সমর্থিত, যদিও ::beforeছদ্ম-উপাদানটি মোটেই সমর্থিত নয়। আশা করি এটি সংস্করণ 10-এ সংশোধন করা হবে।

এইচটিএমএল

<div class="myDiv">
    Hi there
</div>

সিএসএস

.myDiv {
    position: relative;
    z-index: 1;
}

.myDiv:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: url(test.jpg) center center;
    opacity: .4;
}

অতিরিক্ত নোট

আপনার আচরণের কারণে z-indexআপনার পাত্রে একটি জেড-ইনডেক্স পাশাপাশি z-indexপটভূমির চিত্রের জন্য নেতিবাচক সেট করতে হবে ।

পরীক্ষার মামলা

জেএসফিডেলে পরীক্ষার কেসটি দেখুন:


4
জেড-ইনডেক্সের সাথে নেতিবাচক মানগুলি ব্যবহার করার ক্ষেত্রে আমি অতি অদ্ভুত আছি .. তবে, আমি ফলাফল নিয়ে তর্ক করতে পারি না। তবে, আমি যোগ width: 100%; height: 100%;করতে হবে .bgযাতে ie6 পিতা বা মাতা div ভিতরে বিজি ছড়িয়ে দিতে পারে। jsfiddle.net/sbGb4/2
জুনাস

আমি ভেবেছিলাম এর জন্য একটি CSS3 কৌশল আছে যা আমি মিস করছি - তবে এটি দুর্দান্তও!
অ্যালন

@ লোলেরো ভালো পয়েন্ট! z-indexব্যথার কারণ, তবে যতক্ষণ আপনি পিতামাতাকে একটি ইতিবাচক সূচক দেন ততক্ষণ এটি তুলনামূলকভাবে নিরাপদ হওয়া উচিত।
mekwall

@ অ্যালন আপনি যদি সেই মন্তব্যটি পরীক্ষা করেন তবে আমি আপনার প্রশ্ন পোস্টের অধীনে লিখেছি। আমার আর একটি প্রশ্নের সাথে একটি লিঙ্ক আছে যাতে বেশ কয়েকটি অন্যান্য বিকল্প রয়েছে যার মধ্যে রয়েছে rgba যা সিএসএস 3 বিকল্প। হেরস নামে পুরোনো অর্থাত .. জন্য বেশ ভাল কৌতুক css-tricks.com/2151-rgba-browser-support
Joonas

অ্যালন আমি ::beforeসিউডো-এলিমেন্ট ব্যবহার করে অন্য একটি পদ্ধতি যুক্ত করেছি । আপনি কি এটিই খুঁজছিলেন?
মেকওয়াল

160

সুতরাং এখানে অন্য একটি উপায়:

background-image: linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.5)), url("your_image.png");

4
@jj_: কারণ সেই সময়টিতে খুব সীমাবদ্ধ সমর্থন ছিল linear-gradient। আমি যে গৃহীত উত্তরটি লিখেছি তা 4 বছরেরও বেশি পুরানো;)
মেকওয়াল

4
হতে পারে আপনি নিজের প্রশ্নের একটি মন্তব্য বা সামান্য আপডেট যুক্ত করে জানিয়ে দিতে পারেন যে এটি এখন এটি করার নতুন উপায় good একটি নতুন আপডেটের জন্য আপনাকে 4 বছরে দেখা হবে;)
jj_

@jj_: আসলে, এই সমাধানটি চিত্রটিকে স্বচ্ছ করে না make এটি কেবল তার উপরে 50% স্বচ্ছতার সাথে একটি সাদা স্তর যুক্ত করে। সুতরাং, এটি প্রশ্নের বৈধ উত্তর নয়।
মেকওয়াল

8
আমি মনে করি আমরা একমত হতে পারি যে এটি প্রশ্নের উদ্দেশ্য অর্জন করে তাই হ্যাঁ এটি প্রশ্নের বৈধ উত্তর।
ডেভিড ক্লার্ক

হ্যাঁ .. এই উত্তরটি বেশ সহজ সরল বাইরে .. অন্যথায় নিরঙ্কুশতার সাথে পজিশনিং সেখানে
গণ্ডগোল

4

সিএসএস

div { 
    width: 200px;
    height: 200px;
    display: block;
    position: relative;
}

div::after {
    content: "";
    background: url(image.jpg); 
    opacity: 0.5;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    z-index: -1;
}

এইচটিএমএল

<div> put your div content</div>

0

হাই হাই ... এই পাঠ্যের জন্য বিভিন্ন ডিভ ক্লাস ব্যবহার করে এটি করা যেতে পারে

<div class="myDiv">
    <div class="bg">
   <p> Hi there</p>
</div>
</div>

এখন আপনি স্টাইলগুলি প্রয়োগ করতে পারেন

ট্যাগ অন্যথায় বিজি ক্লাসের জন্য। আমি নিশ্চিত যে এটি ঠিক আছে


0

আমি মার্কাস একওয়ালের সমাধানটি কার্যকর করেছি তবে এটি সহজ করে তুলতে কয়েকটি জিনিস সরিয়ে ফেলতে সক্ষম হয়েছি এবং এটি এখনও কার্যকর রয়েছে। এইচটিএমএল / সিএসএসের 2017 সংস্করণ হতে পারে?

এইচটিএমএল:

<div id="content">
  <div id='bg'></div>
  <h2>What is Lorem Ipsum?</h2>
  <p><strong>Lorem Ipsum</strong> is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen
    book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with
    desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p>
</div>

সিএসএস:

#content {
  text-align: left;
  width: 75%;
  margin: auto;
  position: relative;
}

#bg {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: url('https://static.pexels.com/photos/6644/sea-water-ocean-waves.jpg') center center;
  opacity: .4;
  width: 100%;
  height: 100%;
}

https://jsfiddle.net/abalter/3te9fjL5/


4
এটি আমার জবাবটিতে "সেকেন্ডারি ডিভ" এর মতোই করছে, কেবলমাত্র পার্থক্য যে আপনি জেড-সূচক বাদ দিয়েছিলেন (এটি সম্ভবত এটি আজ অন্যরকম আচরণ করে এবং ব্রাউজারের উপরও নির্ভর করে) depend তবে ব্রাউজারকে আশানুরূপ আচরণ করতে বিশ্বাস করা সাধারণত একটি খারাপ ধারণা।
mekwall

0

প্রত্যেককে হ্যালো আমি এটি করেছি এবং এটি ভালভাবে কাজ করেছে

	var canvas, ctx;

		function init() {
			canvas = document.getElementById('color');
			ctx = canvas.getContext('2d');

			ctx.save();
			ctx.fillStyle = '#bfbfbf'; //  #00843D   // 118846
			ctx.fillRect(0, 0, 490, 490);
			ctx.restore();
		}
section{
		height: 400px;
		background: url(https://images.pexels.com/photos/265087/pexels-photo-265087.jpeg?w=1260&h=750&auto=compress&cs=tinysrgb);
		background-repeat: no-repeat;
		background-position: center;
		background-size: cover;
		position: relative;
	
}

canvas {
	width: 100%;
	height: 400px;
	opacity: 0.9;

}

#text {
	position: absolute;
	top: 10%;
	left: 0;
	width: 100%;
	text-align: center;
}


.middle{
	text-align: center;
	
}

section small{
	background-color: #262626;
	padding: 12px;
	color: whitesmoke;
  letter-spacing: 1.5px;

}

section i{
  color: white;
  background-color: grey;
}

section h1{
  opacity: 0.8;
}
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Metrics</title>
	<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">  
</head>  
  
<body onload="init();">
<section>
<canvas id="color"></canvas>

<div class="w3-container middle" id="text">
<i class="material-icons w3-highway-blue" style="font-size:60px;">assessment</i>
<h1>Medimos las acciones de tus ventas y disenamos en la WEB tu Marca.</h1>
<small>Metrics &amp; WEB</small>
</div>
</section> 


0
<!DOCTYPE html>
<html>
<head></head>
<body>
<div style=" background-color: #00000088"> Hi there </div>
<!-- #00 would be r, 00 would be g, 00 would be b, 88 would be a. -->
</body>
</html>

সংখ্যার 4 সেট সহ এটি আরএমবিএ তৈরি করবে, সিএমইকে নয়, তবে যে কোনও উপায়ে কাজ করবে (rgba = 00000088, cmyk = 0%, 0%, 0%, 50%)


-1

সমাধানগুলির কোনওটিই আমার পক্ষে কাজ করেনি। অন্য সব কিছু যদি ব্যর্থ হয়, ফটোশপটিতে ছবিটি পান এবং কিছু প্রভাব প্রয়োগ করুন। 5 মিনিট বনাম এত সময় ...

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