JQuery এর সাথে CSS "শীর্ষ" এবং "বাম" বৈশিষ্ট্যগুলি সরান


169

আমি একটি টেনে নেওয়ার যোগ্য মানচিত্র তৈরি করছি যে মানচিত্রটিকে টেনে আনলে উপাদানটিকে প্রতিটি হিসাবে মান হিসাবে একটি 'বাম' এবং 'শীর্ষ' বৈশিষ্ট্য দেওয়া হয় ...

<div class="map" style="top:200px; left:100px;">Map</div>

আমার একটি বোতাম আছে যা আমি ডিভের ইনলাইন স্টাইল থেকে উপরের এবং বাম বৈশিষ্ট্যটি সরিয়ে দিতে চাইলে ক্লিক করা হবে, jquery দিয়ে কি এটি সম্ভব?


9
হ্যাঁ তাই হয়। কমপক্ষে আপনি এগুলিকে একটি খালি মান হিসাবে সেট করতে পারেন যা এটি সরিয়ে দেয়।
ফেলিক্স ক্লিং

সম্ভাব্য সদৃশ: Jquery ব্যবহার করে CSS বৈশিষ্ট্য সরান । উত্তরগুলি আপনার পক্ষে সহায়ক হতে পারে।
ড্র গায়নর

নোট করুন যে ' 'কেবল খালি মূল্য হিসাবে গণনা করা হয় না''
পিটার বার্গ

3
একবারে কেবল একটি সিএসএস সম্পত্তি অপসারণ করতে: var cssObject =$('selector').prop('style'); cssObject.removeProperty('top'); cssObject.removeProperty('left');
ইলগার

কেবল রেকর্ডের জন্য, খালিটি সেট করা সবসময় কাজ করে না: "শৈলীর বৈশিষ্ট্যের মান একটি খালি স্ট্রিংয়ে সেট করা ... তবে এটি স্টাইলশিটে সিএসএস বিধি প্রয়োগ করা শৈলীর সরিয়ে দেয় না বা < শৈলী> উপাদান। " - দেখুন stackoverflow.com/questions/27791484/...
Mörre

উত্তর:


139

CSS এর জন্য ডিফল্ট মান topএবং leftহয় auto, তাই তাদের যে সেটিং সমতুল্য আপনাকে যা করতে চেষ্টা করছেন কি উপর নির্ভর করে হতে পারে:

$('.map').css('top', 'auto').css('left', 'auto');

আপনার কাছে styleগুনটি পুরোপুরি মুছে ফেলার বিকল্প রয়েছে :

$('.map').removeAttr('style');

তবে, আপনি যদি অন্যান্য jQuery UI উপাদান ব্যবহার করছেন তবে সেগুলির জন্য ইনলাইন শৈলীর প্রয়োজন হতে পারে যা আপনি মুছে ফেলতে চান না, তাই সেখানে সাবধানতার সাথে এগিয়ে যান।


61
সাধারণত স্টাইল অ্যাট্রিবিউটে যুক্ত ওভাররাইটগুলি ডিফল্ট সিএসএস মান থেকে মান পরিবর্তন করার জন্য বোঝানো হয়; এটিকে স্বয়ংক্রিয়ভাবে সেট করা ডিফল্ট মানটিতে পুনরায় সেট করে না। অর্থ অটো আসলে একই নয় তবে মানটি মোটেই নেই। সুতরাং সঠিক উত্তরটি হবে $ ('মানচিত্র')। CSS ('শীর্ষ', '');
dsomnus

15
এই উত্তরটি ভুল, আপনি বৈশিষ্ট্যগুলি অপসারণ করছেন না তবে সেগুলি অন্য কিছু দিয়ে প্রতিস্থাপন করছেন । এছাড়াও, পুরো স্টাইলের ট্যাগটি মুছে ফেলা খুব বেশি অর্থবোধ করে না, কেউ কিছু অ্যাটর্স রাখতে এবং অন্যকে অপসারণ করতে চায় .. wtrevino এর উত্তরটি সঠিক।
অ্যালেক্স

এটি একটি অপরিহার্য বিকল্প নয় তাই এটি থাকা দুর্দান্ত! :) ব্যবহারকারীর
নামের

5
রেকর্ডের জন্য, @ wtrevino এর উত্তরটি এখানে গ্রহণযোগ্য হওয়া উচিত। এই নির্দিষ্ট সমাধানটি আমার জন্য কিছু পরিস্থিতিতে কাজ করেছিল তবে আমি যদি পারতাম তবে এই উত্তরটি সরিয়ে ফেলতাম। দুর্ভাগ্যক্রমে, যেহেতু এটি গৃহীত হয়েছে, এটি আমাকে ছাড়বে না।
রব হুশকা

এটি সঠিক উত্তর নয় ... @wtrevino উত্তরটি সবচেয়ে সঠিক। এই উত্তরটি কেবলমাত্র তখনই কার্যকর হবে যদি আপনি উপাদান থেকে সমস্ত স্থিতিশীল শৈলীগুলি মুছতে চান ... বেশিরভাগ ক্ষেত্রে এটি আপনি যা করতে চান তা নয়।
লার্স

427

আপনি যদি শীর্ষে এবং বাম বৈশিষ্ট্যগুলি সরিয়ে এবং অন্যকে ছেড়ে যেতে চান তবে আপনি এটি করতে পারেন:

$('.map').css('top', '').css('left', '');

বা, একটি সংক্ষিপ্ত সমতুল্য:

$('.map').css({
    'top': '',
    'left': ''
});

64
এটি নির্বাচিতটির চেয়ে ভাল উত্তর।
ফিলিশচাইবার

হাঁ। এই সঠিক উত্তর। প্রথমে কোনও ধারণা দেয়নি, কারণ এটি ".css ('শীর্ষ', '')) মতো মনে হচ্ছে" খালি 'শীর্ষ' নিয়ম তৈরি করে, তবে না, এটি এটিকে পুরোপুরি সরিয়ে দেয়।
শুরু

2
এটি এখনও সেরা উত্তর। তবে আমি মনে করি আমি অন্য একটি খুঁজে পেয়েছি। আমি কয়েকটা আলাদা চেষ্টা করেছি। .css('left', undefined);কিছুই পরিবর্তন হয়নি। নাল পাস করাও কিছু করেনি। তবে .css('left', false);সেই সম্পত্তি সরিয়ে দেয়।
ভিক্টর

অন্যরা যেমন পরামর্শ দিয়েছে, এগুলি সঠিক উত্তর হিসাবে বিবেচনা করা উচিত।

1
@ ভিক্টর নোট করুন যে ডকুমেন্টেশনটি খালি স্ট্রিং ব্যবহার করতে স্পষ্টভাবে বলেছে। আমি ভাবছি যদি ভবিষ্যতে দূরে যেতে পারে এমন কোনও অনাবন্ধিত টাইপের জবরদস্তির কারণে যদি মিথ্যা কাজ হয়ে যায়? api.jquery.com/css
জেরেমি

37

আপনি styleএট্রিবিউটের সমস্ত সামগ্রী মুছে ফেলতে পারেন :

$('.map').removeAttr('style');

এবং আপনি এটি styleদ্বারা নির্দিষ্ট গুলি মুছে ফেলতে পারেন :

$('.map').css('top', '');
$('.map').css('left', '');

30

খালি স্ট্রিং সহ কেবল সিএসএস সম্পত্তি সেট করুন, উদাহরণস্বরূপ নিম্নলিখিত কোড সহ:

$('#mydiv').css('color', '');

CSS এ jQuery ডকুমেন্টেশন দেখুন ।


3
নিশ্চিত কেন এটি গ্রহণযোগ্য উত্তর নয়। আসল স্বীকৃত উত্তর হ্যাকি কারণ এটি আসলে বস্তু থেকে সিএসএস সম্পত্তি সরিয়ে দেয় না, যা প্রশ্নের শিরোনাম।
পল গো

6
  1. এখানে যান: jQuery API
  2. 'অপসারণ' এর জন্য Ctrl + F
  3. পড়ুন:

শৈলীর বৈশিষ্ট্যের মান একটি খালি স্ট্রিংয়ে সেট করা - যেমন $ ("#mydiv") .css ("রঙ", "") - এই বৈশিষ্ট্যটি ইতিমধ্যে HTML শৈলীতে থাকা সত্ত্বেও সরাসরি প্রয়োগ করা থাকলে এটি কোনও উপাদান থেকে সরান jQuery এর .css () পদ্ধতির মাধ্যমে বা স্টাইলের সম্পত্তির সরাসরি DOM ম্যানিপুলেশনের মাধ্যমে বৈশিষ্ট্য।

ডক্সগুলি আপনাকে কী সম্পাদন করার চেষ্টা করছে তার জন্য বর্তমানের প্রস্তাবিত পন্থা দেয় যা প্রায়শই আপনার সময় বাঁচাতে পারে কারণ আপনাকে স্ট্যাক ওভারফ্লোতে আগুনের শিখা যুদ্ধগুলি পড়তে হবে না (তা মজাদার / আলোকিত হোক না কেন) !)।


5

এই JQuery বাগ রিপোর্ট প্রতি

element.removeAttr ( 'শৈলী')
ওয়েবকিট ভিত্তিক ব্রাউজারগুলিতে ধারাবাহিকভাবে কাজ করে না। উদাহরণস্বরূপ, আমি iOS 6.1 এ এই সমস্যাটি পেরিয়েছি। সমাধানটি ব্যবহার করতে হবে:
এলিমেন্ট.আউটআর ('স্টাইল', '')


2

আপনি যদি এগুলি সরাতে চান তবে আপনি করতে পারেন

$('.map').removeAttr('style');

2
$.fn.removeCss=function(prop){
   if(!prop){
          return $(this).removeAttr('style').removeAttr('class');
     }
    else{
         return $(this).css(prop,null);
    }

}

তারপরে আপনি যদি সিএসএস প্রোপ (গুলি) মুছে ফেলতে চান:

    $('#mydiv').removeCss('color');
//To remove all prop Css
    $('#mydiv').removeCss();

1

আমার মতে সবচেয়ে পরিষ্কার উপায় হ'ল সম্পত্তিকে সম্পূর্ণরূপে উপাদানটির সিএসএস স্টাইল ডিক্লেয়ারেশন থেকে সরিয়ে ফেলা, কেবল কোনও ধরণের নাল / শূন্য / ডিফল্ট মান সহ এটির ওভাররাইটিংয়ের পরিবর্তে:

$(".foo").prop("style").removeProperty("top");
$(".foo").prop("style").removeProperty("left");
$(".foo").prop("style").removeProperty("background-color");

0
$.fn.removeCss=function(toDelete){

    var props=$(this).attr('style').split(';');
var tmp=-1;
for( var p=0;p<props.length; p++){if(props[p].indexOf(toDelete)!==-1){tmp=p}};
if(tmp!==-1){

   delete props[tmp];
}

  return $(this).attr('style',props.join(';')+';');

}

এই প্লাগইনটি দিয়ে নিরাপদে মুছুন!

$ ( 'MyDiv') removeCss ( 'রঙ')।


0

কিছু স্টাইল রয়েছে যা সহজে মুছে ফেলা যায় না ((ওভারফ্লো মাথায় আসে)

একটি কার্যপ্রণালী হ'ল 2 টি পৃথক ক্লাস তৈরি করা এবং আপনি যে স্টাইলটি চান তা যুক্ত করা / সরিয়ে ফেলতে হবে।

স্টাইল বৈশিষ্ট্যগুলির জন্য সেরা সমাধান নয় যা সহজেই সরানো / অক্ষম করা যায়।


0

সিএসএস শৈলীগুলি সরাতে শৈলীতে একটি খালি স্ট্রিং বরাদ্দ করুন

এক্ষেত্রে

$('.map').css({top:'',left:''});

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