সিএসএস দিয়ে <br> উপেক্ষা করবেন?


114

আমি এমন কোনও সাইটে কাজ করছি যা <br>শিরোনামের মতো লাইন ব্রেকগুলি serted োকানো হয়েছে। ধরে নিচ্ছি যে আমি উত্স এইচটিএমএল সম্পাদনা করতে পারছি না, সিএসএসের সাথে কি কোনও উপায় আছে যা আমি এই বিরতিগুলি উপেক্ষা করতে পারি?

আমি মোবাইলটি সাইটটি অপ্টিমাইজ করছি যাতে আমি সত্যিই জাভাস্ক্রিপ্ট ব্যবহার করতে চাই না।


1
@ বেন জনসন এম কে ২: আপনার প্রশ্নের উত্তর: "আমি ফায়ারফক্স এবং অপেরা সম্পর্কিত @ অনীশ কার্তিক সি'র উত্তরটির সমাধান চাই", এটি brউপাদানগুলির ব্যবহারের মাধ্যমে সম্ভব নয় ! কারণগুলি ইতিমধ্যে অসংখ্যবার ব্যাখ্যা করা হয়েছে! আমার উত্তরে আমি আপনাকে বৈধ, মজবুত এবং ক্রস ব্রাউজার উপায়ে লক্ষ্য অর্জনের একটি বিকল্প পদ্ধতি দেখিয়েছি।
নেটসার্ফার

উত্তর:


198

সিএসএসের সাহায্যে আপনি বিআর ট্যাগগুলি "লুকিয়ে" রাখতে পারেন এবং এগুলির কোনও প্রভাব থাকবে না:

br {
    display: none;
}

আপনি যদি কেবল একটি নির্দিষ্ট শিরোনামের মধ্যে কিছু গোপন করতে চান তবে আপনার সিএসএসকে আরও নির্দিষ্ট করে তুলুন।

h3 br {
    display: none;
}

11
অণীশের উত্তরটিও একবার দেখে নিবেন তা নিশ্চিত করুন, এটি প্রাসঙ্গিক এবং এনবোরেভ তার বিবেচনা না করে এমন একটি সমস্যা সমাধান করেছেন।
রিক Calder

3
রাজি, অনীশের উত্তরটি চমত্কার সংযোজন। stackoverflow.com/a/18040142/14651
enobrev

2
এই সমাধানটি ফায়ারফক্সের জন্য কাজ করে না। যদি <br/> এর চারপাশে জায়গা না থাকে তবে এটি <br/> চারপাশের শব্দগুলিকে একত্রিত করে। এই নমুনাটি এখানে আপনি নীচে
shinescret

1
যদি আপনার লক্ষ্যটি প্রতিক্রিয়াশীল ডিজাইন হয় তবে কেবলমাত্র ক্রস ব্রাউজার সমাধানটি হ'ল @ নেটসুরফার। এটি ঠিক যেমনটি বলেছিল ঠিক তেমন প্রশ্নের উত্তর দেয় না, তবে এটি সমস্ত আধুনিক ব্রাউজারে লক্ষ্য অর্জন করে।
অ্যান্ড্রু লন্ডিন

94

দ্রষ্টব্য: এই সমাধানটি কেবল ওয়েবকিট ব্রাউজারগুলির জন্যই কাজ করে, যা স্ব-সমাপ্তি ট্যাগগুলিতে ভুলভাবে সিউডো-উপাদান প্রয়োগ করে।

উপরের উত্তরের সংযোজন হিসাবে এটি লক্ষণীয় যে কিছু ক্ষেত্রে কেবল উপেক্ষা করার পরিবর্তে কোনও স্থান সন্নিবেশ করা প্রয়োজন <br>:

উদাহরণস্বরূপ উপরের উত্তরগুলি ঘুরবে

Monday<br>05 August

প্রতি

Monday05 August

আমি আমার সাপ্তাহিক ইভেন্ট ক্যালেন্ডারটি ফর্ম্যাট করার চেষ্টা করার সময় যাচাই করেছিলাম। "সোমবার" এর পরে একটি স্থান সন্নিবেশ করানো পছন্দ করা হয়। সিএসএসে নিম্নলিখিতটি প্রবেশ করে সহজেই এটি করা যায়:

br  {
    content: ' '
}
br:after {
    content: ' '
}

এটি করা হবে

Monday<br>05 August

মত চেহারা

Monday 05 August

আপনি পরিবর্তন করতে পারেন contentমধ্যে অ্যাট্রিবিউট br:afterকরতে ', 'আপনি কমা দ্বারা পৃথক বা আপনার পছন্দের যেকোন মধ্যে চান লাগাতে চান ' 'এটা বিভেদক করুন! যাইহোক

Monday, 05 August

ঝরঝরে দেখাচ্ছে ;-)

একটি রেফারেন্স জন্য এখানে দেখুন ।

উপরের উত্তরের মতো, আপনি যদি এটি ট্যাগ-নির্দিষ্ট করতে চান তবে আপনি পারেন। যদি আপনি ট্যাগের জন্য কাজ এই সম্পত্তি চান হিসাবে <h3>, শুধু একটি যোগ h3আগে প্রতিটি brএবং br:after, উদাহরণস্বরূপ।

এটি সিউডো-ট্যাগের জন্য সবচেয়ে বেশি কাজ করে।


2
খুব খুব প্রতিভা!
জন

1
ঠিক আছে, আসলে এটি কেবল অক্ষম করার পরিণতি সম্পর্কে চিন্তাভাবনা করছি!
রিক Calder

10
ভাল পয়েন্ট তবে এটি কেবল ওয়েবকিট ব্রাউজারগুলিতে (ক্রোম এবং সাফারি) ফায়ারফক্স এবং আইইয়ের সাথে কাজ করে বলে মনে হচ্ছে এই কৌশলটি কাজ করে না, ফায়ারফক্স এবং আইইয়ের সাথে jsfiddle.net/nicooprat/ZHxNA দেখুন ... কোনও ব্রায়াকে কীভাবে প্রতিস্থাপন করা যায় সে সম্পর্কে কোনও ধারণা একটি স্পেস সহ যাতে এটি সমস্ত প্রধান ব্রাউজারগুলির সাথে কাজ করে?
ফায়ারপল

6
@firepol: বাস্তবিক, Firefox এবং আইই জিনিস "সঠিক" করছেন হিসাবে একটি <br />অন্যতম উপাদান করে একটি সিউডো-উপাদান কাজ করতে অনুমিত হয় না । এবং contentকেবল ছদ্ম-উপাদানগুলিতে কাজ করে।
স্কটস

7
এটি খুব ভুল সমাধান, মূলত @ স্কটস ইতিমধ্যে যা লিখেছিল তার কারণ হিসাবে। "সামগ্রী" কেবল ছদ্ম-উপাদানগুলির সাথে কাজ করার কথা, এবং সিউডো-উপাদানটি স্ব-সমাপনী ট্যাগগুলির সাথে কাজ করার কথা নয়। এটি আপাতত কাজ করতে পারে তবে আমি এই সমাধানটিকে ভবিষ্যত-প্রমাণ বলার সাহস করব না।
nd_macias

16

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

br{
    display: none;
}

তাহলে এই কাজ করবে। যদিও এটি IE এর পুরানো সংস্করণগুলিতে কাজ করবে কিনা তা নিশ্চিত নয়।


3
এটি আগে পোস্ট করা হয়েছিল এবং ভোট কম আছে .. কিভাবে আসবেন?
মিঃগ্রিন

কখনও কখনও, আমরা কেবল উপেক্ষা করি; (
টিম বি জেমস

@ টিমবিজেমস এটি ফায়ারফক্সে কাজ করে না আপনি উপরে
shinncret

12

আমি এটি এইভাবে করি:

br { 
    display: inline;
    content: ' ';
    clear:none;
}

6

আপনি যদি সাদা স্থান পদ্ধতিটি কাজ করতে চান তবে আপনি এর spanপরিবর্তে উপাদানগুলি ব্যবহার করতে পারেন br, কারণ এটি সিউডো-উপাদানগুলির উপর নির্ভর করে যা প্রতিস্থাপিত উপাদানগুলির জন্য "সংজ্ঞায়িত নয়"।

এইচটিএমএল

<p>
   To break lines<span class="line-break">in a paragraph,</span><span>don't use</span><span>the 'br' element.</span>
</p>

সিএসএস

span {white-space: pre;}

span:after {content: ' ';}

span.line-break {display: block;}

span.line-break:after {content: none;}

ডেমো

লাইন বিরতি কেবল উপযুক্ত স্প্যান উপাদানকে সেট করেই অর্জন করা যায় display:block

আপনার এইচটিএমএল মার্কআপে আইডি এবং / অথবা ক্লাস ব্যবহার করে আপনি সহজেই সিএসএস দ্বারা প্রতিটি একক বা স্প্যান উপাদানগুলির সংমিশ্রণটিকে লক্ষ্য করতে পারেন বা সিএসএস নির্বাচক পছন্দ করতে পারেন nth-child()

সুতরাং আপনি যেমন একটি প্রতিক্রিয়াশীল বিন্যাসের জন্য মিডিয়া ক্যোয়ারীগুলি ব্যবহার করে বিভিন্ন ব্রেক পয়েন্টগুলি সংজ্ঞায়িত করতে পারেন।

এবং আপনি জাভাস্ক্রিপ্ট (jQuery) দ্বারা সহজেই ক্লাসগুলি যোগ / অপসারণ / টগল করতে পারেন।

এই পদ্ধতির "সুবিধা" হ'ল এটির দৃust়তা - প্রতিটি ব্রাউজারে কাজ করে যা ছদ্ম-উপাদানগুলিকে সমর্থন করে (দেখুন: আমি কি ব্যবহার করতে পারি - CSS উত্পন্ন সামগ্রী )।

বিকল্প হিসাবে সিউডো-উপাদানগুলির মাধ্যমে একটি লাইন বিরতি যুক্ত করাও সম্ভব:

span.break:before {  
    content: "\A";
    white-space: pre;
}

ডেমো


4
আপনি কি এই প্রশ্নের এই অংশটি মিস করেছেন: "ধরে নিচ্ছি আমি কি HTML উত্স সম্পাদনা করতে পারি না"?
স্কটস

1
@ স্কটস: না, আমি করিনি। হতে পারে আপনি এই অংশটি মিস করেছেন: 'আমি ফায়ারফক্স এবং অপেরা সম্পর্কিত @ অনীশ কার্তিক সি'র উত্তরটির সমাধান চাই' (যে অনুগ্রহ শুরু করেছিলেন তিনি ওপি নন)। এবং এর উত্তর হ'ল এটি সম্ভব নয় <br>, কমপক্ষে ক্রস-ব্রাউজার দিয়ে নয়। তাই আমি একটি বিকল্প দেখিয়েছি।
নেটসুরফার

2
না, আমি সেই অংশটি মিস করিনি (যে ওপি অনুগ্রহের চেয়ে আলাদা এবং অনীশের উত্তরের উপর ফোকাস)। তবে আনিশের উত্তরটি পুরো প্রশ্নের প্রসঙ্গে, "সিএসএসের সাথে <br> উপেক্ষা করুন?" বরং সুস্পষ্ট যে যদি এক এইচটিএমএল প্রকৃত নিয়ন্ত্রণ আছে, তারপর কেবল মনে হয় মোছার<br> উপাদান সমস্যা (সম্ভবতঃ তাদের শূণ্যস্থান সঙ্গে প্রতিস্থাপন) solves। সুতরাং সামগ্রিকভাবে যে বিষয়টি নিয়ে সামগ্রিকভাবে উদ্বেগ রয়েছে তা হ'ল যখন কারও এইচটিএমএলটির নিয়ন্ত্রণ নেই ; অতিরিক্ত যুক্ত শর্তে জটিল যে তারা সমাধান করার জন্য জাভাস্ক্রিপ্ট (যে কারণেই হোক না কেন) ব্যবহার করতে চান না।
স্কটস

প্রশ্ন " <br>সিএসএস দিয়ে কীভাবে উপেক্ষা করবেন?" ইতিমধ্যে উত্তর ছিল। এবং কেবলমাত্র আপনি যদি এইচটিএমএলটির নিয়ন্ত্রণে থাকেন যার অর্থ এই নয় যে আপনি এটি পরিবর্তন করতে চান। তবে প্রতিক্রিয়াশীল নকশায় প্রায়শই লাইন ব্রেক (স্বয়ংক্রিয় মোড়ানো ব্যতীত) এর নিয়ন্ত্রণে রাখা বাঞ্ছনীয়। এবং এই জাতীয় ক্ষেত্রে সাদা স্থান থাকা বা সিএসএস (মিডিয়া ক্যোয়ারী) দ্বারা নিয়ন্ত্রিত না হওয়ার পদ্ধতিটি লক্ষ্য অর্জনের জন্য কমপক্ষে "একটি পদ্ধতি"।
নেটসুরফার

এটি এখন আমার পক্ষে আরও ভাল কাজ করেছে যে উপরের সমাধানগুলি ফায়ারফক্সে আর কাজ করে না।
ক্রিস্টোস হুরসিস


1

তার জন্য আপনি ঠিক এটি করতে পারেন:

br{display: none;}

এবং যদি এটি কিছু পিআরই ট্যাগের মধ্যে থাকে, তবে আপনি এবং যদি আপনি পিআরই ট্যাগটি নিয়মিত ব্লক উপাদানগুলির মতো আচরণ করতে চান তবে আপনি এই সিএসএস ব্যবহার করতে পারেন:

pre {white-space: normal;}

অথবা আপনি অনীশ কার্তিক সি এর স্টাইলটি অনুসরণ করতে পারেন:

br  {content: ' '}
br:after {content: ' '}

আমি মনে করি আপনি এটি পেয়েছেন


আমি তোমাদের পয়েন্ট যে সিউডো-উপাদানের মত মিস মনে ::beforeএবং ::afterকরছে অন্তত "প্রতিস্থাপিত উপাদান" মত জন্য "undefined" br। সুতরাং নির্ভরযোগ্য ব্রাউজারের আচরণের পক্ষে কখনও নির্ভর করা যায় না! কেবলমাত্র আপনি যা করতে পারেন তা হল এই উপাদানগুলির সাথে সিউডো উপাদানগুলি ব্যবহার না করা!
নেটসার্ফার

1

আপনার প্রশ্ন অনুসারে, অণীশ কার্তিক সি পদ্ধতির সাহায্যে ফায়ারফক্স এবং অপেরার জন্য এই সমস্যার সমাধান করতে আপনার "ফ্লোট" রাইট "বৈশিষ্ট্য যুক্ত করতে হবে।

পরীক্ষা করে দেখুন উদাহরণ এখানে। এই সিএসএস ফায়ারফক্স (26.0), অপেরা (12.15), ক্রোম (32.0.1700) এবং সাফারি (7.0) এ কাজ করে

br {
   content: " ";  
   float:right; 
}

আমি আশা করি এটি আপনার প্রশ্নের উত্তর দেবে !!


সামগ্রীর বৈশিষ্ট্যটির কেবলমাত্র সিএসএস সিউডো উপাদানগুলিতে প্রভাব রয়েছে। সুতরাং এটি আপনার ডেমোতে একেবারেই অকেজো! এবং কীভাবে brএটিকে "নিরপেক্ষ" করা উচিত ইতিমধ্যে উত্তর দেওয়া হয়েছে (একাধিকবার)। প্রশ্নটি শর্তাধীন সাদা স্থান সম্পর্কে । এবং যেহেতু এটিতেbr ছদ্ম উপাদানগুলির ব্যবহার প্রয়োজন, এটি কাজ করে না
নেটসার্ফার

প্রশ্নটি মনোযোগ দিয়ে পড়লে। আপনি উত্তর বুঝতে হবে। আমি উপরের উত্তরটি দেখেছি যে কেবল প্রদর্শন করার জন্য এটি সেট করেই <br> এড়ানো ভাল: তবে দ্বিতীয় প্রশ্ন অনুসারে যেখানে তিনি অনিশ সমাধানের জন্য এফএফ এবং অপেরা-তে আসা সমস্যাটি কীভাবে মোকাবেলা করতে পারেন তা জানতে চান।
শিনস্ক্রেট

আমি কেবল প্রশ্নটিই নয় সমস্ত উত্তর এবং মন্তব্যগুলি খুব মনোযোগ সহকারে পড়েছি। বিষয়বস্তুর সম্পত্তি brকেবল বোকা! এবং আমি এখনও দেখতে পারি না যে আপনার বাকী উত্তরের "শর্তসাপেক্ষ সাদা স্থান এবং লাইন ব্রেকাস" এর সাথে কী সম্পর্ক আছে? আপনি আরও আরও ব্যাখ্যা করতে পারেন, দয়া করে?
নেটসার্ফার

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

1
আপনার উদাহরণে আপনার তিনটি brউপাদান রয়েছে, প্রথম এবং শেষেরটির আগে এবং পরে ফাঁকা জায়গা রয়েছে। এটি সেই জায়গাগুলিই এটি প্রকাশ করে যে আপনার সমাধানটি কাজ করছে, যখন বাস্তবে এটি হয় না। যখন আপনি এই স্পেসগুলি সরিয়ে ফেলেন, যেমনটি আমি আমার সংশোধিত উদাহরণে করেছি, আপনি দেখতে পাচ্ছেন যে আপনার সমাধানটি ফায়ারফক্সে কোনও স্থান যোগ করছে না।
স্কট এস

0

এই প্রশ্নটি ইতিমধ্যে সমাধান হয়ে গেছে বলে মনে হচ্ছে, গৃহীত উত্তরগুলি ফায়ারফক্সে আমার সমস্যার সমাধান করেনি। ফায়ারফক্স (এবং সম্ভবত আই, যদিও আমি এটি চেষ্টা করে দেখিনি) "কন্টেন্ট" ট্যাগের বিষয়বস্তু পড়ার সময় হোয়াইট স্পেসগুলি এড়িয়ে যান। যদিও আমি পুরোপুরি বুঝতে পেরেছি যে মোজিলা এটি করবে কেন, এটি সমস্যার ভাগ এনে দেয়। আমি খুঁজে পাওয়া সবচেয়ে সহজ কাজটি হ'ল নীচের মতন নিয়মিত পরিবর্তে অবিচ্ছেদী জায়গা ব্যবহার করা।

.noLineBreaks br:before{
content: '\a0'
}

একবার দেখুন


1
আপনার ফিডেলটিতে একটিতে beforeএলিমেন্ট নেই কেন br? এমনকি brআপনার এইচডিএমএল-তেও কোনও ঝাঁকুনিতে নেই। সমস্যার অংশটি হ'ল কিছু ব্রাউজারে beforeকোনও কাজ করে না br
স্কট

এটি বেশ প্রত্যাশিত আচরণ, যেমনটি
অনুমানের প্রতিবেদনে

থা অবশ্যই অদ্ভুত, আমি যখন আমার প্রকল্পে এটি প্রয়োগ করি তখন এটি কাজ করে। আমার পাঠ্যটি সমস্ত এইচটিএমএল নয়, যদিও আমি যে সামগ্রীটি পরিবর্তন করছি তা ডেটাবেস থেকে আসে। দুঃখিত, আমার anwser সাহায্য না, তারপর।
সান্তো গুয়েভেরা

0

হ্যাঁ আপনি এড়িয়ে যেতে পারেন <br>। আপনার বিশেষত প্রতিক্রিয়াশীল ডিজাইনের ক্ষেত্রে এটির প্রয়োজন হতে পারে যেখানে আপনার মোবাইল ডিভাইসের জন্য বিরতিগুলি সরিয়ে ফেলতে হবে।

এইচটিএমএল

<h2>

  Where ever you go <br class="break"> i am there.

</h2>

মোবাইল উদাহরণের জন্য সিএসএস

/* Resize the browser window to check */

@media (max-width: 640px) 
{
  .break {display: none;}
}

এই কোডেপেনটি দেখুন:
https://codepen.io/fluidbrush/pen/pojGQyM


-1

আপনি কেবল একটি মন্তব্যে এটিকে রূপান্তর করতে পারেন ..

অথবা আপনি এটি করতে পারেন:

br {
display: none;
}

তবে আপনি যদি এটি না চান তবে আপনি কেন সেখানে রাখছেন?

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