Я деякий час дивився на синтаксис розмітки, який використовується в GitHub, але, окрім зміни розміру зображення в межах сторінки readme.md, я не можу зрозуміти, як центрувати зображення в ньому.
Це можливо? Якщо так, то як?
Я деякий час дивився на синтаксис розмітки, який використовується в GitHub, але, окрім зміни розміру зображення в межах сторінки readme.md, я не можу зрозуміти, як центрувати зображення в ньому.
Це можливо? Якщо так, то як?
Відповіді:
Я дивився на синтаксис розмітки, який використовується в github [...], я не можу зрозуміти, як центрувати зображення
TL; DR
Ні, ви не можете, покладаючись лише на синтаксис Markdown. Маркдаун не хвилює позиціонування.
Примітка. Деякі процесори розмітки підтримують включення HTML (як справедливо вказує @ waldyr.ar), і у випадку GitHub ви можете повернутися до чогось подібного <div style="text-align:center"><img src="..." /></div>
. Будьте уважні, що немає гарантії, що зображення буде зосереджене, якщо ваш сховище буде роздвоєним у іншому середовищі хостингу (Codeplex, BitBucket, ...) або якщо документ не читається через браузер (Sublime Text Markdown preview, MarkdownPad, VisualStudio Web Попередній перегляд матеріалів Essentials, ...).
Примітка 2: Майте на увазі, що навіть на веб-сайті GitHub спосіб відображення розмітки є неоднаковим. Наприклад, вікі не дозволять такого хитрування css позицій.
Нескорочена версія
Синтаксис Markdown не забезпечує один з можливістю контролювати положення зображення.
Насправді, було б прикордонним проти філософії Markdown , щоб таке форматування, як зазначено в «Філософії» розділу
"Документ у форматі Markdown повинен публікуватися як такий, як звичайний текст, не схожий на те, що він позначений тегами чи інструкціями щодо форматування."
Файли розмітки надаються веб-сайтом github.com за допомогою бібліотеки Ruby Redcarpet .
Redcarpet розкриває деякі розширення (наприклад, перекреслення, наприклад), які не є частиною стандартного синтаксису Markdown і надають додаткові "функції". Однак жодне підтримуване розширення не дозволяє центрирувати зображення.
<img align="..." src="..." alt="...">
<span style="display:block;text-align:center">![Test Automation]Automated-Testing.png)</span>
align
Атрибут на img
тезі застарілим HTML 4.01 і застарілий , як в HTML5.
Це з підтримки Github:
Гей Волдире,
Markdown не дозволяє налаштувати вирівнювання безпосередньо (див. Документи тут: http://daringfireball.net/projects/markdown/syntax#img ), але ви можете просто використовувати необроблений тег HTML 'img' та виконати вирівнювання за допомогою вбудованого рядка css.
Ура,
Так можна вирівняти зображення! Вам просто потрібно використовувати вбудований css для вирішення проблеми. Ви можете взяти приклад з мого github repo . У нижній частині README.md розміщене зображення по центру. Для простоти ви можете просто зробити наступне:
<p align="center">
<img src="http://some_place.com/image.png" />
</p>
Хоча, як сказав nulltoken, це буде межею проти філософії Маркдауна!
Цей код з мого readme :
<p align="center">
<img src="https://github.com/waldyr/Sublime-Installer/blob/master/sublime_text.png?raw=true" alt="Sublime's custom image"/>
</p>
Виробляє цей вихід зображення, за винятком центру, якщо його переглядають на GitHub:
align
атрибут не підтримується в HTML5 ?
Крім того, якщо у вас є контроль над css, ви можете отримати розумні параметри url та css .
Відмітка:
![A cute kitten](http://placekitten.com/200/300?style=centerme)
І CSS:
img[src$="centerme"] {
display:block;
margin: 0 auto;
}
Ви можете створити різноманітні варіанти стилів таким чином, і все одно не захищати від додаткового коду. Звичайно, ви не маєте контролю над тим, що станеться, якщо хтось інший використовує розмітку де-небудь ще, але це загальна проблема стилізації з усіма документами на розмітку однією поділяється.
Для вирівнювання ліворуч
<img align="left" width="600" height="200" src="https://www.python.org/python-.png">
Для правильного вирівнювання
<img align="right" width="600" height="200" src="https://www.python.org/python-.png">
І для вирівнювання по центру
<p align="center">
<img width="600" height="200" src="https://www.python.org/python-.png">
</p>
Перекладіть його сюди для подальших посилань, якщо вам це стане в нагоді.
Ви також можете змінити розмір зображення до потрібної ширини та висоти . Наприклад:
<p align="center">
<img src="https://anyserver.com/image.png" width="750px" height="300px"/></p>
Щоб додати підпис до центру із зображенням, просто ще один рядок:
<p align="center">This is a centered caption for the image<p align="center">
На щастя, це працює як для сторінок README.md, так і для GitHub Wiki.
Ми можемо цим скористатися. Будь ласка, змініть місце розташування src ур img із папки git та додайте альтернативний текст, якщо img не завантажений
<p align="center">
<img src="ur img url here" alt="alternate text">
</p>
Просто перейдіть до Readme.mdфайлу і скористайтеся цим кодом.
<div align="center">
<img src=https://newfastuff.com/wp-content/uploads/2019/05/bW7QXVB.png" >
<p>Perfectly balanced</p>
</div>
<div align=”center”> [ Your content here ]</div>
вміщує все на сторінці, а центр вирівнює його відповідно до розмірів сторінки.
Мій спосіб вирішити проблему з позиціонуванням зображення полягав у використанні атрибутів HTML:
![Image](Image.svg){ width="800" height="600" style="display: block; margin: 0 auto" }
Зображення було змінено належним чином та по центру, принаймні, в моєму місцевому рендері розміщення VS.
Тоді я змінив repo і, на жаль, зрозумів, що він не працює для файлу GitHub README.md . Тим не менш, я залишу цю відповідь, оскільки це може допомогти комусь іншому.
Отже, нарешті, замість цього я використав старий хороший тег HTML:
<img src="Image.svg" alt="Image" width="800" height="600" style="display: block; margin: 0 auto" />
Але вгадайте, що? Якийсь метод JS замінив мій style
атрибут! Я навіть спробував class
атрибут і з тим самим результатом!
Тоді я знайшов наступну сторінку суті, де було використано ще більше HTML-програми для старої школи:
<p align="center">
<img src="Image.svg" alt="Image" width="800" height="600" />
</p>
Цей працює добре, проте я хотів би залишити його без додаткових коментарів ...
"Чистий" підхід до відмітки, який може впоратися з цим, - додавання зображення до таблиці та центрування комірки:
| ![Image](img.png) |
| :--: |
Він повинен створити HTML, подібний до цього:
<table>
<thead>
<tr>
<th style="text-align:center;"><img src="img.png" alt="Image"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Використовуйте цей HTML / CSS, щоб додати зображення та розмістити його в центрі та встановити його розмір до 60% ширини екрану всередині вашого файлу розмітки, що зазвичай є хорошим початковим значенням:
<img src="https://i.stack.imgur.com/RJj4x.png"
style="display:block;float:none;margin-left:auto;margin-right:auto;width:60%">
Змініть width
значення CSS на будь-який відсоток, який ви хочете, або видаліть його взагалі, щоб використовувати розмір за замовчуванням розмітки, який, на мою думку, становить 100% ширини екрану, якщо зображення більше, ніж екран, або в іншому випадку це фактична ширина зображення.
Готово!
Або продовжуйте читати набагато більше інформації.
Просто скопіюйте та вставте його вгорі файла розмітки, щоб по центру та змінити розмір усіх зображень у файлі (а потім просто вставити будь-які зображення, які ви хочете, із звичайним синтаксисом розмітки):
<style>
img
{
display:block;
float:none;
margin-left:auto;
margin-right:auto;
width:60%;
}
</style>
Або ось той самий код, що і вище, але з детальними коментарями HTML та CSS, щоб пояснити, що саме відбувається:
<!-- (This is an HTML comment). Copy and paste this entire HTML `<style>...</style>` element (block)
to the top of your markdown file -->
<style>
/* (This is a CSS comment). The below `img` style sets the default CSS styling for all images
hereafter in this markdown file. */
img
{
/* Default display value is `inline-block`. Set it to `block` to prevent surrounding text from
wrapping around the image. Instead, `block` format will force the text to be above or below the
image, but never to the sides. */
display:block;
/* Common float options are `left`, `right`, and `none`. Set to `none` to override any previous
settings which might have been `left` or `right`. `left` causes the image to be to the left,
with text wrapped to the right of the image, and `right` causes the image to be to the right,
with text wrapped to its left, so long as `display:inline-block` is also used. */
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
/* You may also set the size of the image, in percent of width of the screen on which the image
is being viewed, for example. A good starting point is 60%. It will auto-scale and auto-size
the image no matter what screen or device it is being viewed on, maintaining proporptions and
not distorting it. */
width:60%;
/* You may optionally force a fixed size, or intentionally skew/distort an image by also
setting the height. Values for `width` and `height` are commonly set in either percent (%)
or pixels (px). Ex: `width:100%;` or `height:600px;`. */
/* height:400px; */
}
</style>
Тепер, чи вставляєте ви зображення за допомогою розмітки:
![](https://i.stack.imgur.com/RJj4x.png)
Або HTML у файлі розмітки:
<img src="https://i.stack.imgur.com/RJj4x.png">
... він буде автоматично центрований і розміром до 60% від ширини перегляду екрана, як описано в коментарях у межах HTML та CSS вище. (Звичайно, розмір 60% теж дуже легко змінюється, і я подаю прості способи, як це зробити і на основі зображення за зображенням).
Незалежно від того, ви скопіювали та не вставили вищезазначений <style>
блок у верхню частину вашого файлу розмітки, це також буде працювати, оскільки він переосмислює і має перевагу перед будь-якими налаштуваннями стилю файлу, які ви могли встановити вище:
<img src="https://i.stack.imgur.com/RJj4x.png" style="display:block;float:none;margin-left:auto;margin-right:auto;width:60%">
Ви також можете відформатувати його в декількох рядках, як це, і він все одно буде працювати:
<img src="https://i.stack.imgur.com/RJj4x.png"
alt="this is an optional description of the image to help the blind and show up in case the
image won't load"
style="display:block; /* override the default display setting of `inline-block` */
float:none; /* override any prior settings of `left` or `right` */
/* set both the left and right margins to `auto` to center the image */
margin-left:auto;
margin-right:auto;
width:60%; /* optionally resize the image to a screen percentage width if you want too */
">
Додайте це все до початку файлу розмітки.
<style>
/* By default, make all images center-aligned, and 60% of the width
of the screen in size */
img
{
display:block;
float:none;
margin-left:auto;
margin-right:auto;
width:60%;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
}
</style>
Тепер ваш img
блок CSS встановив параметри за замовчуванням для центрів зображень та розміру 60% від ширини екранного розміру, але ви можете використовувати класи leftAlign
та rightAlign
CSS для зміни цих параметрів на основі зображення по зображенню.
Наприклад, це зображення буде вирівнюватися по центру і мати розмір 60% (типовий я встановлений вище):
<img src="https://i.stack.imgur.com/RJj4x.png">
Однак це зображення буде вирівняно ліворуч , із загортанням тексту праворуч, використовуючи leftAlign
клас CSS, який ми тільки що створили вище!
<img src="https://i.stack.imgur.com/RJj4x.png" class="leftAlign">
Це може виглядати приблизно так:
Ви все ще можете замінити будь-які його властивості CSS через style
атрибут , однак, наприклад, ширина, як це:
<img src="https://i.stack.imgur.com/RJj4x.png" class="leftAlign" style="width:20%">
А тепер ви отримаєте це:
img
позначкиІнший варіант того, що ми нещодавно показали вище, де ми змінили img
property:value
налаштування за замовчуванням і створили 2 класи, - це просто залишити всі img
властивості розмітки за замовчуванням у спокої, але створити 3 користувацькі класи CSS, як це:
<style>
/* Create a CSS class to style images to center-align */
.centerAlign
{
display:block;
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
width:60%;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
width:60%;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
width:60%;
}
</style>
Використовуйте їх, звичайно, так:
<img src="https://i.stack.imgur.com/RJj4x.png" class="centerAlign" style="width:20%">
Зверніть увагу, як я вручну встановив width
властивість за допомогою style
атрибута CSS вище, але якби у мене було щось складніше, я хотів би зробити, я також міг би створити кілька додаткових класів на кшталт цього, додавши їх всередині <style>...</style>
блоку вище:
/* custom CSS class to set a predefined "small" size for an image */
.small
{
width:20%;
/* set any other properties, as desired, inside this class too */
}
Тепер ви можете призначити кілька класів одному об’єкту, як цей. Просто розділіть назви класів пробілом, а не комою . У випадку суперечливих налаштувань, я вважаю, який із останніх налаштувань буде набирати чинності, замінюючи будь-які раніше встановлені налаштування. Так має бути і в тому випадку, якщо ви встановлюєте однакові властивості CSS кілька разів у тому ж класі CSS або всередині одного style
атрибута HTML .
<img src="https://i.stack.imgur.com/RJj4x.png" class="centerAlign small">
Останній трюк - це я навчився у цій відповіді тут: Як я можу використовувати CSS для стилю декількох зображень по-різному? . Як ви бачите вище, усі 3 align
класи CSS встановлюють ширину зображення на 60%. Таким чином, це загальне налаштування можна встановити всі одразу, як це, якщо ви хочете, тоді ви можете встановити конкретні параметри для кожного класу:
<style>
/* set common properties for multiple CSS classes all at once */
.centerAlign, .leftAlign, .rightAlign {
width:60%;
}
/* Now set the specific properties for each class individually */
/* Create a CSS class to style images to center-align */
.centerAlign
{
display:block;
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
}
/* custom CSS class to set a predefined "small" size for an image */
.small
{
width:20%;
/* set any other properties, as desired, inside this class too */
}
</style>
Наскільки я переживаю, все, що ми можемо записати у розмітковому документі та отримати бажаний результат, - це все, що ми шукаємо, а не синтаксис "чистої відмітки".
У C і C ++ компілятор збирається в код складання, а потім збірка збирається в бінарний. Однак іноді вам потрібен низькорівневий елемент управління, який може забезпечити тільки збірка, і ви можете записувати вбудовану збірку прямо всередині вихідного файлу C або C ++. Асамблея є мовою "нижчого рівня", і її можна записати прямо на C та C ++.
Так і з відміткою. Відмітка - мова високого рівня, що інтерпретується до HTML та CSS. Однак там, де нам потрібен додатковий контроль, ми можемо просто "вбудувати" HTML і CSS нижнього рівня прямо в нашому файлі розмітки, і він все одно буде інтерпретований правильно. У певному сенсі HTML та CSS є синтаксисом "розмітки".
Отже, для центрування зображення у розмітці використовуйте HTML та CSS.
Як додати базове зображення у розмітку за замовчуванням "поза кадром" форматування HTML та CSS:
Це відмітка:
![](https://i.stack.imgur.com/RJj4x.png)
Дасть цей вихід:
Це мій гексакоптер з вогнепальної стрільби .
Ви також можете додатково додати опис у квадратні дужки, що відкриваються. Чесно кажучи, я навіть не впевнений, що це робить, але, можливо, він перетворюється в атрибут HTML- <img>
елементаalt
, який відображається на випадок, якщо зображення не може завантажуватися, і його можуть читати екрани для незрячих. Отже, ця відмітка:
![this is my hexacopter I built](https://i.stack.imgur.com/RJj4x.png)
також дасть такий вихід:
Для центрування зображення у розмітці потрібно використовувати додатковий контроль, який можуть нам надавати HTML та CSS. Ви можете вставити та централізувати окреме зображення таким чином:
<img src="https://i.stack.imgur.com/RJj4x.png"
alt="this is my hexacopter I built"
style="display:block;
float:none;
margin-left:auto;
margin-right:auto;
">
Ось додаткова інформація. про те, що відбувається тут:
<img
Частина наведеного вище коду є HTML « почати тег », а >
в кінці кінців , є HTML « закриває тег ».img
" елемент ".img
"теги" / "елементи" використовуються для вставки зображень у HTML.style=""
CSS property:value
-значення" декларація ".
;
), тоді як кожен "атрибут" HTML у цьому "елементі" відокремлений пробілом (
).src
та style
.alt
не є обов'язковим.style
атрибут, який приймає CSS стилі, ключові заяви є все 4 , які я показую: display:block
, float:none
, margin-left:auto
, і margin-right:auto
.
float
властивість раніше, то ви можете залишити від цієї декларації, але це хороша ідея , щоб мати це в будь-якому випадку на всякий випадок./* my comment */
).Це справді дуже просто.
-> This is centered Text <-
Отже, маючи на увазі, ви можете застосувати це до синтаксису img.
->![alt text](/link/to/img)<-