Что моя кнопка не отображается одинаково в разных браузерах?

Графическая кнопка:

Я пытаюсь воспроизвести эту графическую кнопку, которую нашел на веб-сайте. Однако, в отличие от веб-сайта, я хочу сделать это с помощью CSS и заставить его работать во всех существующих и популярных браузерах. Смотрите демо: https://codepen.io/Alix-Blaine/pen/wvLwxrN.

Репликация с помощью CSS:

main {
  margin: 0;
  width: 4.313em;
}

a {
  display: block;
  text-decoration: none;
  text-transform: capitalize;
  background-color: #666699;
  font-size: 0.75em;
  color: #FFF;
  padding: .2em;
  box-sizing: border-box;
  border-bottom: 2px inset rgba(26, 25, 25, 0.8);
  border-left: 2px inset rgba(0, 0, 0, .5);
  border-right: 2px inset rgba(26, 25, 25, 0.8);
  border-top: 2px inset rgb(255, 255, 255);
}
<main>
  <a href = "index.html">Twitter</a>
</main>

Полученные результаты:

Хром

Fire Fox

Пожалуйста, уточните вашу конкретную проблему или добавьте дополнительную информацию, чтобы выделить именно то, что вам нужно. Поскольку сейчас написано, трудно точно сказать, о чем вы спрашиваете.

Paulie_D 05.07.2024 16:19

Если вы хотите быть уверенным, что он отображается одинаково во ВСЕХ браузерах, по иронии судьбы, лучший подход — использовать изображение вместо CSS. Если вы все еще хотите пойти по этому пути, взгляните на это: Browserstack.com/guide/create-browser-specific-css

Wimanicesir 05.07.2024 16:21

@Paulie_D, пожалуйста, прочти мою правку. Спасибо.

Alix Blaine 05.07.2024 16:27

Разные браузеры могут отображать немного по-разному, поэтому вы видите различия в своем примере. Как сказал Виманичесир, изображение будет простой реализацией, гарантирующей единообразие внешнего вида.

Austin 05.07.2024 16:31

Этот вопрос требует от ответчиков слишком многого, но при этом дает мало доказательств исследований. Например, по моему мнению, эти два скриншота чертовски близки к желаемому результату. Настолько близко, что мне понадобится пиксельная линейка и палитра цветов, чтобы изучить различия. Настолько близко, что я бы сказал, что мы потратим больше денег на возню с CSS, и если нам нужен такой уровень совершенства, нам следует использовать изображение.

Heretic Monkey 05.07.2024 16:46

@HereticMonkey, спасибо, но вставленные тени или границы плохо отображаются в Chrome.

Alix Blaine 05.07.2024 16:53

Эта проблема с интерфейсом восходит к зарождению wysiwyg и «войне» за лицензии на шрифты Adobe; и ваш font-size: 0.75em; никогда не будет прежним, даже если вы используете шрифт True Type.

Mister Jojo 05.07.2024 17:12

Вот такие детали следует отредактироватьв вопрос. Именно это имел в виду @Paulie_D, когда просил вас «уточнить вашу конкретную проблему или добавить дополнительную информацию, чтобы подчеркнуть именно то, что вам нужно». Нам нужно знать, какие вы видите конкретные проблемы с представлением CSS в каждом браузере, чтобы предложить разные CSS, а также способы их отображения только для этого браузера.

Heretic Monkey 05.07.2024 17:27

Кстати, никого не волнует, что во всех браузерах это не совсем одинаково. Из-за этого пользователи не решают, использовать сайт или нет.

RoToRa 05.07.2024 20:53
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
9
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я бы использовал вектор, например .svg, чтобы добиться того же общего результата и сохранить его хрустящим. Вот так:

<main>
  <a href = "index.html"><svg
   version = "1.1"
   width = "67"
   height = "21"
   id = "svg17"
   sodipodi:docname = "stack.svg"
   inkscape:version = "1.3.2 (091e20e, 2023-11-25, custom)"
   xmlns:inkscape = "http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi = "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns = "http://www.w3.org/2000/svg"
   xmlns:svg = "http://www.w3.org/2000/svg">
  <defs
     id = "defs17">
    <rect
       x = "43.82093"
       y = "43.378296"
       width = "306.74652"
       height = "124.82326"
       id = "rect19" />
    <rect
       x = "45.591473"
       y = "51.345737"
       width = "297.45117"
       height = "102.24884"
       id = "rect18" />
    <rect
       x = "49.575195"
       y = "60.198448"
       width = "279.3031"
       height = "84.986046"
       id = "rect17" />
  </defs>
  <sodipodi:namedview
     id = "namedview17"
     pagecolor = "#ffffff"
     bordercolor = "#000000"
     borderopacity = "0.25"
     inkscape:showpageshadow = "2"
     inkscape:pageopacity = "0.0"
     inkscape:pagecheckerboard = "0"
     inkscape:deskcolor = "#d1d1d1"
     inkscape:zoom = "10.245981"
     inkscape:cx = "21.179036"
     inkscape:cy = "9.2231284"
     inkscape:window-width = "1920"
     inkscape:window-height = "974"
     inkscape:window-x = "-11"
     inkscape:window-y = "-11"
     inkscape:window-maximized = "1"
     inkscape:current-layer = "svg17" />
  <rect
     style = "display:inline;fill:#666695;fill-opacity:1;stroke:#000000;stroke-width:0.526527"
     id = "rect20"
     width = "66.461639"
     height = "20.436222"
     x = "0.26530051"
     y = "0.30037344"
     inkscape:label = "rect20" />
  <path
     d = "M 0.00265149,0.03543588 C 2.3997226,1.103814 1.2578846,4.0660316 1.5494423,6.111032 c 0.038134,4.430444 0.064893,8.860978 0.088974,13.291518 21.2684991,0.01725 42.5369981,0.03451 63.8054971,0.05176 0,-6.00452 0,-12.0090405 0,-18.0135608 0.456894,-0.2027749 1.591792,-1.96109364 1.549498,-1.01858235 0,6.86082175 0,13.72164315 0,20.58246515 -22.324502,0 -44.649004,0 -66.97350624,0 C 0.01415367,14.0149 0.00840258,7.0251679 0.00265149,0.03543588 Z"
     fill = "#6b6973"
     id = "path3"
     style = "display:inline;stroke-width:0.128795;fill:#292833;fill-opacity:1" />
  <path
     d = "M -0.00743854,9.2933662e-4 66.997645,1.68604e-4 C 66.485559,0.47038005 65.498313,1.5512629 65.498313,1.5512629 64.056495,1.7539709 2.6794333,1.7514905 1.6690757,1.7124055 c 0,0 -1.67651424,-1.49780952 -1.67651424,-1.71147616338 z"
     fill = "#ababab"
     id = "path4"
     style = "display:inline;stroke-width:0.128795;fill:#aaaaaa;fill-opacity:1"
     sodipodi:nodetypes = "ccccc" />
  <path
     d = "M 0.00265149,0.03543588 C 0.58814053,0.55946512 1.1232929,1.1364982 1.6599176,1.7095289 c -0.00128,5.8940224 -0.00255,11.7880451 -0.00383,17.6820671 -0.5511443,0.531928 -1.10228854,1.063855 -1.65343281,1.595783 -1.1e-6,-6.983981 -2.2e-6,-13.9679621 -3.3e-6,-20.95194312 z"
     fill = "#33334a"
     id = "path5"
     style = "display:inline;stroke-width:0.128795;fill:#595972;fill-opacity:1" />
  <text
     xml:space = "preserve"
     id = "text19"
     style = "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:93.3333px;line-height:1.2;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';white-space:pre;shape-inside:url(#rect19);display:inline;fill:#ffffff;stroke:none;stroke-width:4.15748"
     transform = "matrix(0.12984378,0,0,0.12775574,-2.1493329,-1.2609385)"><tspan
       x = "43.820312"
       y = "123.89016"
       id = "tspan1">Twitter</tspan></text>
</svg></a>
</main>

Другие вопросы по теме