ভিউপোর্ট মেটা ট্যাগ থেকে "প্রস্থ = ডিভাইস-প্রস্থ" অপসারণের পার্শ্ব প্রতিক্রিয়াগুলি যখন "প্রাথমিক-স্কেল = 1.0" সেট করা থাকে


9

যদিও <meta name="viewport">ট্যাগ unstandardized, এটা "অ-ফ্যাক্টো আধিপত্য কারণে সবচেয়ে মোবাইল ব্রাউজারে দ্বারা বিবেচনা করা হয়।"

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

আমার মূল প্রশ্নটি হ'ল:

নিম্নলিখিত ঘোষণার মধ্যে অনুভূত পার্থক্য কি হবে?

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="initial-scale=1.0">

বিকল্পভাবে জিজ্ঞাসা করা হয়েছে, এই দুটি @ ভিউপোর্ট সিএসএস-এর বিধিগুলির মধ্যে পার্থক্যগুলি কী :

/* Translated from <meta name="viewport" content="width=device-width, initial-scale=1.0"> */
@viewport {
    zoom: 1.0;
    min-width: extend-to-zoom;
    max-width: 100vw;
}
/* Translated from <meta name="viewport" content="initial-scale=1.0"> */
@viewport {
    zoom: 1.0;
    min-width: extend-to-zoom;
    max-width: extend-to-zoom;
}

এই @viewportঅনুবাদগুলিতে আমি কীভাবে পৌঁছেছি :

width=device-width প্রতি min-width: extend-to-zoom; max-width: 100vw;

সিএসএস ডিভাইস অভিযোজন মডিউল লেভেল 1 ডকুমেন্ট পদ বলে:

widthএবং heightভিউপোর্ট <META>বৈশিষ্ট্য অনুবাদ করা হয় widthএবং heightবর্ণনাকারী, সেটিং min-width/ min-heightমান extend-to-zoomএবং max-width/ max-heightভিউপোর্ট থেকে দৈর্ঘ্যের মান।

তারা অতিরিক্ত একটি উদাহরণ দেয় :

এই <META>উপাদান:

<meta name="viewport" content="width=500, height=600">

অনুবাদ:

@viewport {
    width: extend-to-zoom 500px;
    height: extend-to-zoom 600px;
}

widthসাধারণভাবে সংক্ষেপে বর্ণনাকারী হিসাবে বর্ণনা করা হয়:

এই উভয় সেট করার জন্য একটি সাঁটে লেখার বর্ণনাকারী হয় min-widthএবং max-width। একটি <viewport-length>মান উভয় min-widthএবং max-widthসেই মানকে সেট করে । প্রথমটি এবং দ্বিতীয়টিতে দুটি <viewport-length>মান সেট min-widthকরা হবে max-width

সুতরাং এটি width: extend-to-zoom 500px;সমান যে কারণ দাঁড়ায় min-width: extend-to-zoom; max-width: 500px;

যে শুধুমাত্র 100vwঅংশ ছেড়ে । বিভাগ 10.4 এর মধ্যে তারা ব্যাখ্যা করে:

device-widthএবং device-heightযথাক্রমে 100vw এবং 100vh এ অনুবাদ করুন

সুতরাং আমরা পরিশেষে দেখতে পারি কীভাবে width=device-widthঅনুবাদ করা হয় min-width: extend-to-zoom; max-width: 100vw;

initial-scale=1.0 প্রতি zoom: 1.0; width: extend-to-zoom;

এটি একটি ভারব্যাটিম উদাহরণ :

এই <META>উপাদান:

<meta name="viewport" content="initial-scale=1.0">

অনুবাদ:

@viewport {
    zoom: 1.0;
    width: extend-to-zoom;
}

অন্যান্য প্রশ্ন আমি এখানে আছে, হয় কি ঠিক হল extend-to-zoomমূল্য কত?

এটা ডকুমেন্টেশন এবং তার রেজল্যুশন পদ্ধতি উপলব্ধি করতে কঠিন। যদি কেউ আমাকে এ সম্পর্কে আরও কয়েকটি উদাহরণের দিকে নির্দেশ করতে পারে তবে তা প্রশংসিত হবে।


উপরের সমস্ত কিছু ছাড়াও, কিছু ভিউপোর্ট কনফিগারেশন পরীক্ষা করার জন্য আমি একটি দ্রুত সাইট - https://romellem.github.io/temp-site/viewport/ - একসাথে রেখেছি ।

যথা:

এটি পরীক্ষায় সহায়তা করতে পারে।

উত্তর:


5

আপনি যা জিজ্ঞাসা করছেন তা আবিষ্কার করার আগে, viewportমেটা ট্যাগটি কেন প্রথম স্থানে রয়েছে সে সম্পর্কে একটু পর্যালোচনা করা যাক । আমি যা জড়ো করেছি তা এখানে।


আমাদের viewportট্যাগ লাগবে কেন ?

একটি ভিউপোর্ট এমন একটি অঞ্চল যেখানে ওয়েব সামগ্রী দেখা যায়। সাধারণত, রেন্ডার করা পৃষ্ঠা (ওয়েব সামগ্রী) ভিউপোর্টের চেয়ে বড়। ফলস্বরূপ, আমরা সাধারণত লুকানো সামগ্রী দেখতে স্ক্রোলবারগুলি ব্যবহার করি (কারণ ভিউপোর্টটি সবকিছু প্রদর্শন করতে পারে না)। সিএসএস ডিভাইস অভিযোজন মডিউল স্তর 1 থেকে উদ্ধৃত :

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

মোবাইল ডিভাইসগুলিতে (এবং অন্যান্য ছোট ডিভাইস), প্রাথমিকযুক্ত ব্লকটি ভিউপোর্টের চেয়ে সাধারণত বড়। উদাহরণস্বরূপ, একটি মোবাইল ডিভাইস যার স্ক্রিন প্রস্থ রয়েছে এর 640pxপ্রাথমিক ধারণযুক্ত ব্লক থাকতে পারে 980px। এই ক্ষেত্রে, প্রাথমিকযুক্ত ব্লকটি সঙ্কুচিত হয় 640pxযাতে এটি মোবাইলের স্ক্রিনে ফিট হতে পারে। এই 640pxপ্রস্থ (পর্দার প্রস্থ) initial-widthভিউপোর্টকে বলা হয় যা আমাদের আলোচনার জন্য প্রাসঙ্গিক হবে।

সুতরাং .... আমাদের এই viewportট্যাগটি কেন দরকার ? ভাল, আজকাল, আমাদের কাছে মিডিয়া প্রশ্ন রয়েছে যা আমাদের মোবাইল ডিভাইসগুলির জন্য ডিজাইনের অনুমতি দেয়। তবে এই মিডিয়া ক্যোয়ারীটি আসল ভিউপোর্টের প্রস্থের উপর নির্ভর করে । মোবাইল ডিভাইসগুলিতে, ব্যবহারকারী এজেন্ট স্বয়ংক্রিয়ভাবে প্রাথমিক ভিউপোর্ট আকারটিকে অন্য নির্দিষ্ট স্থানে স্টাইল করে (সাধারণত প্রাথমিক ভিউপোর্ট আকারের চেয়ে বড়)। সুতরাং যদি কোনও মোবাইল ডিভাইসের ভিউপোর্টের প্রস্থ স্থির করা হয়, তবে মিডিয়া ক্যোয়ারিতে আমরা যে সিএসএস বিধি ব্যবহার করি তা কেবল কার্যকর করা হবে না কারণ ভিউপোর্টের প্রস্থ কখনও পরিবর্তন হয় না। ব্যবহার viewportট্যাগ, আমরা করতে পারেন নিয়ন্ত্রণ প্রকৃত ভিউপোর্ট এর প্রস্থ (ইউএ দ্বারা স্টাইল হওয়ার পর)। এমডিএন থেকে উদ্ধৃত :

তবে মিডিয়া ক্যোয়ারীগুলি ব্যবহার করে সংকীর্ণ পর্দার জন্য অনুকূলিত হওয়া পৃষ্ঠাগুলির জন্য এই প্রক্রিয়াটি এতটা ভাল নয় - উদাহরণস্বরূপ যদি ভার্চুয়াল ভিউপোর্ট 980px হয় তবে 640px বা 480px বা তার চেয়ে কম সংখ্যক মিডিয়া কোয়েরি কখনই ব্যবহার করা হবে না, যেমন এর কার্যকারিতা সীমাবদ্ধ করে never প্রতিক্রিয়াশীল নকশা কৌশল।

মনে রাখবেন যে viewportট্যাগটি কেবল প্রস্থ নয়, প্রকৃত ভিউপোর্টের উচ্চতাও পরিবর্তন করতে পারে


viewport ট্যাগ width

widthএকটি viewportট্যাগে অনুবাদ করা হয় max-widthমধ্যে @viewportনিয়ম। আপনি যখন widthহিসাবে device-widthএটি ঘোষণা , এটি নিয়মে অনুবাদ করা 100%হয় @viewportশতাংশের মানinitial-width ভিউপোর্টের ভিত্তিতে সমাধান করা হয় । সুতরাং আমরা যদি এখনও উপরের উদাহরণটি ব্যবহার করি তবে এর max-widthমানটির সমাধান হবে 640px। যেমন আপনি খুঁজে পেয়েছেন, এটি কেবলমাত্র নির্দিষ্ট করে max-widthmin-widthস্বয়ংক্রিয়ভাবে হবে extend-to-zoom


extend-to-zoom

আপনার প্রশ্নটি হ'ল প্রসারিত থেকে জুমের মানটি কী? আমি যা জোগাড় করেছি তা থেকে, এটি এমন মান যা ভিউপোর্টকে একটি নির্দিষ্ট জুম স্তরে দেখার ক্ষেত্রের সাথে ফিট করার জন্য প্রসারিত করে support অন্য কথায়, এটি একটি ভিউপোর্টের আকারের মান যা নির্দিষ্ট করা জুমিং মানের ভিত্তিতে পরিবর্তিত হয়। একটি উদাহরণ? প্রদত্ত যে max-zoomইউএ স্টাইলশীট মান 5.0এবং initial-widthহয় 320px, <meta name="viewport" content="width=10">একটি প্রাথমিক প্রকৃত প্রস্থের সাথে সমাধান হবে 64px। এটি উপলব্ধি করে কারণ যদি কোনও ডিভাইসে কেবল 320px থাকে এবং কেবলমাত্র 5xসাধারণ মানটি জুম করা যায়, তবে সর্বনিম্ন ভিউপোর্টের আকার হবে 320px divided by 5যার অর্থ একটি সময়ে কেবলমাত্র p৪px প্রদর্শিত হবে ( এবং না 10pxকারণ এর জন্য 32x জুম করা প্রয়োজন!)। এই মানটি কীভাবে min-widthএবং max-widthমানগুলি প্রসারিত (পরিবর্তন) করা যায় তা নির্ধারণ করতে অ্যালগরিদম দ্বারা ব্যবহৃত হবে যা প্রকৃত ভিউপোর্টের প্রস্থ নির্ধারণে ভূমিকা পালন করবে।


সবগুলোকে একত্রে রাখ

তাই মূলত, এর মধ্যে পার্থক্য কি <meta name="viewport" content="width=device-width, initial-scale=1.0">এবং <meta name="viewport" content="initial-scale=1.0">? কেবল অ্যালগরিদমের পদক্ষেপগুলি আবার করুন ( এটি এবং এটি )। প্রথমে পরেরটি ( widthবৈশিষ্ট্যবিহীন এক ) করা যাক। (আমরা ধরে নেব যে initial-widthভিউপোর্টটিরটি হ'ল 640px))

  • widthসেট না করা হয়, এই ফলাফল max-widthএবং min-widthহচ্ছে extend-to-zoomমধ্যে @viewportনিয়ম।
  • initial-scaleহয় 1.0। এর অর্থ zoomহল মানটিও1.0
  • সমাধান করাextend-to-zoom যাক । পদক্ষেপ:
    1. extend-zoom = MIN(zoom, max-zoom)MINঅপারেশন মান অ- হয় সমাধান করা auto। এখানে, zoomহয় 1.0এবং max-zoomহয় auto। এর অর্থ extend-zoomহচ্ছে1.0
    2. extend-width = initial-width / extend-zoom। এটা সহজ; 640 দ্বারা 1 বিভক্ত করুন। আপনি extend-widthসমান640
    3. extend-zoomঅ- কারণ auto, আমরা দ্বিতীয় শর্তসাপেক্ষে চলে যাব। max-widthপ্রকৃতপক্ষে extend-to-zoom, এর অর্থ max-widthসেট করা হবে extend-width। সুতরাং,max-width = 640
    4. min-widthএছাড়াও extend-to-zoom, এর অর্থ সেট min-widthকরা max-width। আমরা পেতেmin-width = 640
  • অ-auto (অর্থাত্ extend-to-zoom) মানগুলি সমাধান করার পরে max-widthএবং min-width। আমরা পরবর্তী পদ্ধতিতে এগিয়ে যেতে পারেন । কারণ min-widthবা max-widthনয় auto, তাই আমরা প্রথমেই ব্যবহার করবে ifপদ্ধতির মধ্যে, এইভাবে প্রাথমিক প্রকৃত ভিউপোর্ট সেটিং widthথেকে MAX(min-width, MIN(max-width, initial-width)), যা সমান MAX(640, MIN(640, 640))। এটি 640আপনার প্রাথমিক আসল ভিউপোর্টের জন্য সমাধান করেwidth
  • পরবর্তী পদ্ধতিতে চলছে । এই পদক্ষেপে, widthনা auto। মান পরিবর্তন করা হয় না এবং আমরা প্রকৃত ভিউপোর্ট দিয়ে শেষ widthএর640px

প্রাক্তনটি করা যাক।

  • widthসেট করা থাকে, এই ফলাফল max-widthহচ্ছে 100%( 640pxআমাদের ক্ষেত্রে) এবং min-widthহচ্ছে extend-to-zoomমধ্যে @viewportনিয়ম।
  • initial-scaleহয় 1.0। এর অর্থ zoomহল মানটিও1.0
  • সমাধান করাextend-to-zoom যাক । আপনি পদক্ষেপ সাবধানে (উপরে যেমন প্রায় একই) অনুসরণ করেন, তাহলে আপনি দিয়ে শেষ হবে max-widthএর 640pxএকটি min-widthএর 640px
  • আপনি সম্ভবত এখন প্যাটার্নটি দেখতে পারেন। এর আসল ভিউপোর্ট প্রস্থ আমরা পাব 640px

সুতরাং অনুভূত পার্থক্য কি? মূলত কোনওটিই নয় । দুজনেই একই কাজ করে। আশা করি আমার ব্যাখ্যাটি সহায়তা করে ;-) যদি কিছু ভুল থেকে থাকে তবে আমাকে বলুন।


এটি দুর্দান্ত এবং আমি যা খুঁজছিলাম তার সাথে সঙ্গতিপূর্ণ। আমি এটিকে উত্তর হিসাবে চিহ্নিত করব তবে আপনি কখন পার্থক্য খুঁজে পেতে পারেন তার কিছু ব্যাখ্যা পছন্দ করব । মনে হচ্ছে মূল পার্থক্যগুলি যদি আপনার সাথে ছোট কিছু প্রাথমিক সামগ্রী থাকে এবং একটি প্রাথমিক জুম সেট না করে থাকে 1.0তবে আমি এ সম্পর্কে অনিশ্চিত। যাইহোক, দুর্দান্ত উত্তর, ধন্যবাদ!
রোমলেম

@ ক্রোম্লেম হ্যাঁ, আপনি যদি viewportট্যাগটি নির্দিষ্ট করে না থাকেন তখন ট্যাগ বৈশিষ্ট্য নির্দিষ্ট করে দেওয়ার সময় আপনি একটি অনুভূত পার্থক্য খুঁজে পেতে পারেন initial-scale। উদাহরণস্বরূপ, আপনি যখন লিখবেন <meta name="viewport" content="360px">, আপনি জানেন যে আপনি প্রাথমিক জুম স্তরটি নিয়ন্ত্রণ করছেন না। যেমনটি, আমার সীমাবদ্ধ পরীক্ষা থেকে, ইউএ শৈলী সর্বদা সঙ্কলিত হয় (এমন কোনও পদ্ধতির মাধ্যমে যা ভিউপোর্টটি নাও হতে পারে) port যাইহোক, 360pxঅন্তর্গঠিত ভিউপোর্টের আকার নির্বিশেষে প্রকৃত ভিউপোর্ট সর্বদা প্রস্থে থাকবে ।
রিচার্ড

@romellem ধারাবাহিকতা । যাইহোক, আপনি যখন লিখবেন <meta name="viewport" content="360px", initial-scale=1.0>, আপনি কোনও মানটি তৈরি করছেন এবং এর min-widthসাথে extend-to-zoomমিলিত zoomহবেন, এটি সর্বদা জুম মান এবং এর দ্বারা বিভক্ত প্রাথমিক ভিউপোর্ট প্রস্থের মধ্যে সর্বদা বৃহত্তম মানটিতে সমাধান হবে max-width। বাধা পদ্ধতিতে (বিভাগ 7.2), আপনি দেখতে পাবেন যে width = MAX(min-width, MIN(max-width, initial-width))। আমার সীমিত পরীক্ষা থেকে, আমার অনুমান যে max-widthনির্দিষ্ট যখন ... এর চেয়ে ছোট হয় ...
রিচার্ড

@romellem ধারাবাহিকতা । ... প্রকৃত ভিউপোর্ট প্রস্থ, এটি সর্বদা প্রাথমিক ভিউপোর্ট প্রস্থে সমাধান করবে। তবে, max-widthমানটি প্রাথমিক ভিউপোর্ট প্রস্থের চেয়ে বড় হলে , সর্বনিম্ন মানটি প্রাথমিক ভিউপোর্ট প্রস্থ এবং সর্বাধিক মান হবে ভাল, max-widthমান। extend-to-zoomশব্দার্থিক ভাবে জ্ঞান করে তোলে কারণ extend-to-zoomউপর min-widthআক্ষরিক ভিউপোর্ট প্রস্থ মান যখন জুম প্রসারিত 1.0। এবং এটি উপরের উত্তরের সাথে সারিবদ্ধ হয়, এটি একটি জুম স্তরের প্রদত্ত মানকে extend-to-zoomপরিবর্তিত / প্রসারিত / প্রসারিত করে । width
রিচার্ড

@ ক্রোম্লেম অবশ্যই, এটি কেবলমাত্র initial-scaleবৈশিষ্ট্যটি নিয়ন্ত্রণ করার মধ্যে সীমাবদ্ধ নয় , তবে এটি অনুভূত পার্থক্য তৈরির অন্যতম উপায়। আমার প্রথম মন্তব্যে পুনর্বিবেচনা, ডিভাইসটির প্রস্থ 360px এর চেয়ে বড় হলে ইউএ স্টাইলটি ভিউপোর্টটি জুম-ইন (কেবল সঙ্কুচিত করে না) করতে পারে।
রিচার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.