React.js এ গুগল ফন্টগুলি কীভাবে ব্যবহার করবেন?


104

আমি React.js এবং ওয়েবপ্যাক দিয়ে একটি ওয়েবসাইট তৈরি করেছি

আমি ওয়েবপৃষ্ঠায় গুগল ফন্ট ব্যবহার করতে চাই , তাই আমি লিঙ্কটিটি বিভাগে রেখেছি।

গুগল ফন্ট

<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet">

এবং সিএসএস সেট করুন

body{
    font-family: 'Bungee Inline', cursive;
}

যাইহোক, এটা কাজ করে না।

কিভাবে আমি এই সমস্যার সমাধান করতে পারে?


4
আপনি <link>পৃষ্ঠার শিরোনামে রেখেছেন , আপনার প্রতিক্রিয়া অ্যাপটিতে নয়, সঠিক? আপনি কি font-familyআপনার স্টাইলশীটের অন্য কোথাও বা আপনার উপাদানগুলিতে সরাসরি উল্লেখ করেছেন?
টিমো

আপনি কি https ব্যবহার করছেন এবং আপনার কি কোনও সুরক্ষা নীতি আছে?
স্টুয়ার্ট

আসলে, আমি জানি গুগল ফন্টগুলি আমদানির সঠিক পদ্ধতি কী। আমি মনে করি আমার একটি সাধারণ উদাহরণ প্রয়োজন। আপনি কি আমাকে সাহায্য করতে পারেন ...
কেভিন হিসিয়াও

আপনার মার্কডাউন কেমন দেখাচ্ছে? আপনি কি অন্যান্য স্টাইলগুলি সংজ্ঞায়িত করছেন যা আরও সাধারণটি ওভাররাইট করতে পারে?
23:38

আমি এই সমস্যাটি সমাধান করেছিলাম ..... আমি আগে যে পদ্ধতিটি চেষ্টা করেছি তা ভুল ছিল। এটি সঠিক পদ্ধতি। স্থানীয়ভাবে গুগল ফন্টগুলি ব্যবহার করা হচ্ছে (এইচজেএস-ওয়েবপ্যাক এবং প্রতিক্রিয়াতে) তবে, ওয়েবপ্যাক প্রক্রিয়াটিতে এখনও কিছু ত্রুটি রয়েছে। এই দুটি লাইন কোডটি webpack.config.js ফাইলে রাইটিং করা উচিত । { test: /(\.css$)/, loaders: ['style-loader', 'css-loader', 'postcss-loader'] }, { test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000' }
কেভিন Hsiao

উত্তর:


88

কোনও ধরণের প্রধান বা প্রথম লোড করা সিএসএস ফাইলের মধ্যে কেবল করুন:

@import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:regular,bold,italic&subset=latin,latin-ext');

আপনার কোনও ধরণের @ ফন্ট-ফেস ইত্যাদিতে মোড়ানোর দরকার নেই, গুগলের এপিআই থেকে ফিরে আসা প্রতিক্রিয়া আপনাকে প্রস্তুত এবং আপনাকে ফন্ট পরিবারগুলিকে স্বাভাবিকের মতো ব্যবহার করতে দেয়।

তারপরে আপনার প্রধান প্রতিক্রিয়া অ্যাপ্লিকেশন জাভাস্ক্রিপ্টে শীর্ষে এমন কিছু রাখুন:

import './assets/css/fonts.css';

আমি কি আসলে একটি তৈরি করা হয়েছিল হয়নি app.cssযে একটি আমদানিকৃত fonts.cssকয়েক ফন্ট আমদানির সঙ্গে। কেবল সংগঠনের জন্য (এখন আমি জানি যে আমার সমস্ত ফন্টগুলি কোথায়)। মনে রাখা গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি হরফগুলি প্রথমে আমদানি করুন।

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

ফন্ট ইত্যাদি লোড করার সময় আপনি আরও কার্যকর হওয়ার জন্য গুগল ফন্ট এপিআই পাস করতে পারেন এমন কয়েকটি অপশন রয়েছে official সরকারী নথিপত্র দেখুন: গুগল ফন্ট এপিআই দিয়ে শুরু করুন

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


4
আপনি কি দয়া করে ব্যাখ্যা করতে পারেন যে এইচটিএমএল হেডে লিঙ্কটি ব্যবহার করার উপায়টি কেন কাজ করে না?
ডুবিন

64

রিঅ্যাক্ট.জেজে গুগল ফন্ট?

আপনার স্টাইলশিটটি খুলুন, যেমন, app.css, style.css (আপনার নাম কি), এটি কোনও ব্যাপার নয়, কেবল স্টাইলশিটটি খুলুন এবং এই কোডটি আটকে দিন

@import url('https://fonts.googleapis.com/css?family=Josefin+Sans');

এবং আপনার যে ফন্টটি চান তা ইউআরএল পরিবর্তন করতে ভুলবেন না, অন্যথায় ভাল কাজ করছে

এবং এটি হিসাবে ব্যবহার করুন:

body {
  font-family: 'Josefin Sans', cursive;
}

জেএস দিয়ে ফন্টগুলি লোড করা ভাল না? আমি পারফোনেন্স কারণে বলতে চাই।
সাইমন ফ্রেঞ্জেন

আপনি কি দয়া করে ব্যাখ্যা করতে পারেন যে এইচটিএমএল হেডে লিঙ্কটি ব্যবহার করার উপায়টি কেন কাজ করে না?
ডুবিন

22

আপনি অ্যাপ পরিবেশ প্রতিক্রিয়া তৈরি করুন ব্যবহার করেন তাহলে কেবল নিয়ম @import যোগ index.css যেমন:

@import url('https://fonts.googleapis.com/css?family=Anton');

আপনার প্রধান প্রতিক্রিয়া অ্যাপ্লিকেশন ইনডেক্স.সিএস আমদানি করুন:

import './index.css'

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

font-family: 'Anton', sans-serif;

13

আপনার এই টিউটোরিয়ালটি দেখতে হবে: https://scotch.io/@micwanyoike/how-to-add-fouts-to-a-react-project

import WebFont from 'webfontloader';

WebFont.load({
  google: {
    families: ['Titillium Web:300,400,700', 'sans-serif']
  }
});

আমি কেবল এই পদ্ধতিটি চেষ্টা করেছি এবং আমি বলতে পারি যে এটি খুব ভালভাবে কাজ করে;)


10

আপনার সিএসএস ফাইলে, যেমন একটি ক্রিয়েট-রিএ্যাক্ট-অ্যাপ্লিকেশনটিতে App.css, একটি ফন্টফেস আমদানি যুক্ত করুন। উদাহরণ স্বরূপ:

@fontface {
  font-family: 'Bungee Inline', cursive;
  src: url('https://fonts.googleapis.com/css?family=Bungee+Inline')
}

তারপরে একই CSS ফাইলের মধ্যে DOM উপাদানটিতে ফন্টটি যুক্ত করুন।

body {
  font-family: 'Bungee Inline', cursive;
}

4
আপনি যদি এটি করতে চান এবং এটি গুগলের ফন্ট এপিআইয়ের সাথে প্রয়োজনীয় না হয় তবে এটি @ ফন্ট-ফেস।
টম

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

6

একই সমস্যা ছিল। "পরিবর্তে আমি পরিবর্তে ব্যবহার করছিলাম '

@import url('within single quotes');এই মত ব্যবহার করুন

@import url("within double quotes");এই মত না



3

এখানে ভাল উত্তরের জন্য অন্য একটি বিকল্প হ'ল এনপিএম প্যাকেজ react-google-font-loader, এটি এখানে পাওয়া যায় ।

ব্যবহার সহজ:

import GoogleFontLoader from 'react-google-font-loader';

// Somewhere in your React tree:

<GoogleFontLoader
    fonts={[
        {
            font: 'Bungee Inline',
            weights: [400],
        },
    ]}
/>

তারপরে আপনি নিজের সিএসএসে পরিবারের নামটি ব্যবহার করতে পারেন:

body {
    font-family: 'Bungee Inline', cursive;
}

দাবি অস্বীকার: আমি react-google-font-loaderপ্যাকেজের লেখক ।


3

আপনার প্রতিক্রিয়া অ্যাপটিতে আপনি ফন্টগুলি যুক্ত করতে পারেন এমন দুটি ভিন্ন উপায়।

স্থানীয় ফন্ট যুক্ত করা হচ্ছে

  1. fontsআপনার srcফোল্ডারে একটি নতুন ফোল্ডার তৈরি করুন ।

  2. স্থানীয়ভাবে গুগল ফন্টগুলি ডাউনলোড করুন এবং সেগুলি fontsফোল্ডারের ভিতরে রাখুন ।

  3. আপনার index.cssফাইলটি খুলুন এবং পথটি উল্লেখ করে ফন্টটি অন্তর্ভুক্ত করুন।

@font-face {
  font-family: 'Rajdhani';
  src: local('Rajdhani'), url(./fonts/Rajdhani/Rajdhani-Regular.ttf) format('truetype');
}

এখানে আমি একটি Rajdhaniফন্ট যুক্ত করেছি।

এখন, আমরা আমাদের ফন্টটি এই জাতীয় CSS ক্লাসে ব্যবহার করতে পারি।

.title{
    font-family: Rajdhani, serif;
    color: #0004;
}

গুগল ফন্ট যুক্ত করা হচ্ছে

আপনি যদি স্থানীয় ফন্টের পরিবর্তে গুগল ফন্ট (এপিআই) ব্যবহার করতে চান তবে আপনি এটি এটি যুক্ত করতে পারেন।

@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;500&display=swap');

একইভাবে, আপনি ট্যাগ index.htmlব্যবহার করে এটি ফাইলের অভ্যন্তরেও যুক্ত করতে পারেন link

<link href="https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;500&display=swap" rel="stylesheet">

(মূলত https://reactgo.com/add-fouts-to-react-app/ এ পোস্ট করা হয়েছে )


1

যদি কেউ (.বিহীন) দিয়ে সমাধান খুঁজছেন তবে নীচে চেষ্টা করুন। আপনার প্রধান বা সাধারণ কম ফাইল খুলুন এবং নীচের মত ব্যবহার করুন।

@import (css) url('https://fonts.googleapis.com/css?family=Open+Sans:400,700');

body{
  font-family: "Open Sans", sans-serif;
}

0

এটি শেষে লিঙ্কটির স্ব-সমাপনী ট্যাগ হতে পারে, চেষ্টা করুন:

<link href="https://fonts.googleapis.com/css?family=Bungee+Inline" rel="stylesheet"/> 

এবং আপনার main.css ফাইলে চেষ্টা করুন:

body,div {
  font-family: 'Bungee Inline', cursive;
}

0

কিছু ক্ষেত্রে আপনার ফন্টের সংস্থান সম্ভবত আপনার প্রকল্প ডিরেক্টরিতে অন্য কোথাও। সুতরাং আপনি এসএসএসএস ব্যবহার করে এটি এ জাতীয় লোড করতে পারেন

 $list: (
      "Black",
      "BlackItalic",
      "Bold",
      "BoldItalic",
      "Italic",
      "Light",
      "LightItalic",
      "Medium",
      "MediumItalic",
      "Regular",
      "Thin",
      "ThinItalic"
    );
    
    @mixin setRobotoFonts {
      @each $var in $list {
        @font-face {
          font-family: "Roboto-#{$var}";
          src: url("../fonts/Roboto-#{$var}.ttf") format("ttf");
        }
      }
    }
@include setRobotoFonts();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.