Получение длины столбца от В спящем режиме отображения?

Фактическая причина:

Это не col-sm-12 , а d-flex на card-img-overlay, который делает ваш дизайн выглядят не правильно в IE.

Почему?

Когда display:flex применяется к элементу, непосредственному дочернему элементу (т. Е. Гибким элементам) потребуется определенная ширина или иначе они не будут расширяться или занимать достаточно места, как нам требуется, если только контента недостаточно.

В вашем случае у нас есть d-flex вдоль card-img-overlay, поэтому непосредственный дочерний элемент (т.е. элемент flex) этого .row не будет иметь ширину 100%. Теперь для столбца col-sm-12, 100% будет полным горизонтальным пространством с его родителем (.row), которое само по себе недостаточно широко. Это реальная проблема здесь.

Решение:

  1. Дайте 100% ширину .row, вы можете использовать класс Bootstrap 4 w-100.
    • Это могло бы быть реальным решением вашей проблемы / запроса, но для того, чтобы получить желаемый вид, все еще требуется немного, как в других браузерах.
  2. Предоставление position: absolute не работает в одиночку, умные браузеры будут знать, что делать, но другие будут нуждаться в значениях смещения, таких как top & amp; left. В вашем случае со значением как 0.
  3. Наконец, изображение с фактическими размерами атрибутов width и height тега <img>, здесь в вашем случае это будет width="1200" & amp; [1 124].

Таким образом, по сути, начальная загрузка не имеет ничего общего с этой проблемой, это просто поток разметки и свойств CSS.

Примечание:

Надеюсь, что описанные выше шаги помогли вам решить проблему или понять ее. Я бы предложил всегда иметь атрибуты width и height для тега <img>, чтобы браузеры (старые) знали, как сделать этот конкретный размер блока на странице.

.dnow-regionsContent .overlay-div {
    height: 100%;
    width: 100%;
    position: absolute;
    background-color: #000;
    opacity: 0.3;
    /*Added*/
    top:0;
    left:0;
}
.dnow-regionsContent img {
    max-height: 40rem;
}
<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <title>slick slider</title>
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
      crossorigin="anonymous">


   <link rel="stylesheet" href="css/style.css">
</head>

<body>
   <section class="dnow-regionsWrap">
      <div class="dnow-regionsContent">
         <div class="card bg-dark text-white">
            <img src="https://www.dropbox.com/s/9fvw247x7ml90mf/canadaN.jpg?dl=1" width="1200" height="800" alt="">
            <div class="overlay-div"></div>
            <div class="card-img-overlay d-flex align-items-center container">
               <div class="row mb-5 w-100">
                  <div class=" col-sm-12 text-content">
                     <h2 class="card-title ">
                        Canada
                     </h2>
                     <p class="">
                        Viewl all Location Viewl all Location
                     </p>
                  </div>
               </div>
            </div>
         </div>
      </div>
   </section>

   <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
      crossorigin="anonymous"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
      crossorigin="anonymous"></script>
   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
      crossorigin="anonymous"></script>

</body>

</html>

Это был не ты, это был IE.

Надеюсь, это поможет вам!

8
задан James McMahon 5 February 2009 в 17:20
поделиться

4 ответа

Можно добраться до него, но это не легко. Вы могли бы хотеть сделать что-то как ниже при запуске и сохранить статический кэш значений. Существует много особых случаев для контакта с (наследование, и т.д.), но оно должно работать на простые отображения отдельного столбца. Я, возможно, не учел некоторый instanceof и пустые проверки.

for (Iterator iter=configuration.getClassMappings(); iter.hasNext();) {
    PersistentClass persistentClass = (PersistentClass)iter.next();
    for (Iterator iter2=persistentClass.getPropertyIterator(); iter2.hasNext();) {
       Property property = (Property)iter2.next();
       String class = persistentClass.getClassName();
       String attribute = property.getName();
       int length = ((Column)property.getColumnIterator().next()).getLength();
    }
  }
6
ответ дан 5 December 2019 в 08:54
поделиться

На основе ответа Brian это - то, что я закончил тем, что делал.

private static final Configuration configuration = new Configuration().configure();

public static int getColumnLength(String className, String propertyName) {
    PersistentClass persistentClass = configuration.getClassMapping(className);
    Property property = persistentClass.getProperty(propertyName);
    int length = ((Column) property.getColumnIterator().next()).getLength();

    return length;
}

Это, кажется, работает хорошо. Надежда это полезно любому, кто натыкается на этот вопрос.

7
ответ дан 5 December 2019 в 08:54
поделиться

Иногда может возникнуть проблема с получением объекта конфигурации (если вы используете некоторую платформу приложения и не создаете фабрику сеансов самостоятельно с помощью конфигурации).

Если вы используете для Например, Spring, вы можете использовать LocalSessionFactoryBean (из вашего applicationContext) для получения объекта Configuration. Тогда получение длины столбца - это просто кусок пирога;)

factoryBean.getConfiguration().getClassMapping(String entityName) .getTable().getColumn(Column col).getLength()
1
ответ дан 5 December 2019 в 08:54
поделиться

Однако, когда я пытаюсь получить доступ к LocalSessionFactoryBean , я беру исключение приведения класса

LocalSessionFactoryBean factoryBean = (LocalSessionFactoryBean) WebHelper.instance().getBean("sessionFactory");

исключение:

org.hibernate.impl.SessionFactoryImpl cannot be cast to org.springframework.orm.hibernate3.LocalSessionFactoryBean

<bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean>

Это кажется хитрым ....

РЕДАКТИРОВАТЬ: нашел ответ. Вам нужно использовать амперсанд перед строкой имени компонента

LocalSessionFactoryBean factoryBean = (LocalSessionFactoryBean) WebHelper.instance().getBean("&sessionFactory");

см. Это сообщение на форуме Spring

1
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: