Как перевернуть железо-иконку по вертикали в css - PullRequest
0 голосов
/ 17 января 2019

Я использую iron-icon компоненты для моего Polymer 2 приложения, и я хочу знать, как отразить эти значки по вертикали или по горизонтали? Я пробовал атрибут transform и его эквивалент для других браузеров, но он не работал для меня. как показано ниже:

.my-icon-class {
    color: #55555A;
    margin-top: 10px;
    width: 30px;
    height: 50px;
    transform: scale(-1);
}

Я даже попробовал атрибутировать фильтр на IE:

.my-icon-class {
    color: #55555A;
    margin-top: 10px;
    width: 30px;
    height: 50px;
    filter: FLipH;
}

И мой экземпляр иконки выглядит так:

<iron-icon class="my-icon-class" icon="icons:room"></iron-icon>

Оператор импорта выглядит следующим образом:

<link rel="import" href="../../bower_components/polymer/polymer-element.html">

<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">

Вы можете найти фрагмент ниже здесь:

// Load webcomponents.js polyfill if browser doesn't support native Web Components.
var webComponentsSupported = (
  'registerElement' in document
  && 'import' in document.createElement('link')
  && 'content' in document.createElement('template')
);

if (webComponentsSupported) {
	// For native Imports, manually fire WebComponentsReady so user code
  // can use the same code path for native and polyfill'd imports.
  if (!window.HTMLImports) {
    document.dispatchEvent(
      new CustomEvent('WebComponentsReady', {bubbles: true})
    );
  }
} else {
	// Load webcomponents.js polyfill
  var script = document.createElement('script');
  script.async = true;
  script.src = 'https://cdn.rawgit.com/StartPolymer/cdn/1.8.1/components/webcomponentsjs/webcomponents-lite.min.js';
  document.head.appendChild(script);
}
h1 {
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  margin: 24px 0;
}

.my-icon-class {
  color: #55555A;
  margin-top: 10px;
  width: 50px;
  height: 70px;
}
<!-- <base href="https://gitcdn.xyz/cdn/StartPolymer/cdn/v1.11.0/components/"> -->
<!-- <base href="https://cdn.rawgit.com/StartPolymer/cdn/v1.11.0/components/"> -->
<base href="https://rawcdn.githack.com/StartPolymer/cdn/v1.11.0/components/">

<link rel="import" href="iron-icon/iron-icon.html">
<link rel="import" href="iron-icons/iron-icons.html">

<style is="custom-style">

body {
  @apply(--layout-vertical);
  @apply(--layout-center-center);
}
</style>

<h1>Polymer Icon to Flip</h1>
<p>And I want to flip it vertically and/or horizontally, need only the css. Thanks</p>

<iron-icon class="my-icon-class" icon="icons:room"></iron-icon>
icon to flip

<script>

window.addEventListener('WebComponentsReady', function() {
  // Async call needed here for IE11 compatibility.
  Polymer.Base.async(function() {
    
  });
});

</script>

Если вам нужно больше информации, пожалуйста, спросите в комментариях.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я нашел решение, используя:

.my-class {
    transform: rotate(180deg);
}
0 голосов
/ 17 января 2019

Привет, пожалуйста, взгляните в обновленном фрагменте.

// Load webcomponents.js polyfill if browser doesn't support native Web Components.
var webComponentsSupported = (
  'registerElement' in document
  && 'import' in document.createElement('link')
  && 'content' in document.createElement('template')
);

if (webComponentsSupported) {
	// For native Imports, manually fire WebComponentsReady so user code
  // can use the same code path for native and polyfill'd imports.
  if (!window.HTMLImports) {
    document.dispatchEvent(
      new CustomEvent('WebComponentsReady', {bubbles: true})
    );
  }
} else {
	// Load webcomponents.js polyfill
  var script = document.createElement('script');
  script.async = true;
  script.src = 'https://cdn.rawgit.com/StartPolymer/cdn/1.8.1/components/webcomponentsjs/webcomponents-lite.min.js';
  document.head.appendChild(script);
}
h1 {
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  margin: 24px 0;
}

.my-icon-class {
  color: #55555A;
  margin-top: 10px;
  width: 50px;
  height: 70px;
  transform: rotateX(180deg);
}
.my-icon-class:hover {
  transform: rotateY(180deg);
}
<!-- <base href="https://gitcdn.xyz/cdn/StartPolymer/cdn/v1.11.0/components/"> -->
<!-- <base href="https://cdn.rawgit.com/StartPolymer/cdn/v1.11.0/components/"> -->
<base href="https://rawcdn.githack.com/StartPolymer/cdn/v1.11.0/components/">

<link rel="import" href="iron-icon/iron-icon.html">
<link rel="import" href="iron-icons/iron-icons.html">

<style is="custom-style">

body {
  @apply(--layout-vertical);
  @apply(--layout-center-center);
}
</style>

<h1>Polymer Icon to Flip</h1>
<p>And I want to flip it vertically and/or horizontally, need only the css. Thanks</p>

<iron-icon class="my-icon-class" icon="icons:room"></iron-icon>
icon to flip

<script>

window.addEventListener('WebComponentsReady', function() {
  // Async call needed here for IE11 compatibility.
  Polymer.Base.async(function() {
    
  });
});

</script>
...