Я создаю HTML-документ и использую css для нумерации абзацев следующим образом:
p.numerado:before {
content: counter(numerado) ". ";
counter-increment: numerado;
display: inline-block;
width: 25mm;
font-weight: normal;
}
p.numerado {
text-indent: 0mm;
text-align: justify;
font-family: "Times New Roman, Times, serif";
font-size: 11pt;
margin-top: 0;
margin-bottom: 0.2em;
line-height: 1.2em;
font-weight: normal;
}
Однако мне нужно показать предварительный просмотр этого внутри элемента управления .NET WebBrowser, который отображает HTML в стиле IE7, а затем стили выше не работают, то есть абзацы с классом numerado не нумеруются и не имеют отступа.
Поскольку конечным местом назначения HTML-документа является текущий Firefox, и я не хочу изменять реестр Windows только для изменения поведения элемента управления WebBrowser, я хотел бы знать, есть ли альтернативный CSS, который я могу использовать, просто ради отображение предварительного просмотра внутри WebBrowser с максимально близким стилем конечного результата, относительно нумерации и отступа этих абзацев.
Вот как это отображается в Firefox:
Вот как это отображается в WebBrowser (IE7)
Большое спасибо.
@jmargolisvt, вы правы, пост редактировал, чтобы уточнить. Я хотел бы согласиться с вами, мне не о чем беспокоиться, но это вызвано конкретным сценарием, который я не могу изменить сейчас (то есть мне нужно развернуть приложение Winforms .NET на машинах, где пользователи выиграли '' У меня есть права вносить изменения в реестр, необходимые для того, чтобы WebBrowser работал как более новая версия IE, и MS, в свою очередь, никогда не заботилась об упрощении настройки этого компонента в отношении режимов рендеринга). Спасибо.
Я не понимаю. Если этот документ предназначен для отображения в Firefox, почему вас волнует, как он выглядит в элементе управления WinForms WebBrowser для всех вещей?
@BoltClock, потому что его предварительный просмотр должен отображаться в окне из приложения, которое генерирует документ (это приложение Winforms .NET), а затем HTML будет отправлен в веб-сервис и будет показан в Firefox, но для других пользователей .
Что ж, это довольно прискорбно. Как приложение работает с предоставленным вами CSS? И позволяет ли это сохранять или копировать сгенерированный HTML-код, с помощью которого вы можете просмотреть его в своем любимом браузере?
@BoltClock мое приложение генерирует весь HTML, используя тот же CSS, который целевое веб-приложение генерирует в своих собственных документах. Поскольку мои познания в CSS поверхностны, я решил задать этот вопрос, прежде чем уступить необходимость настройки всего документа до версии, совместимой только с IE7, что, похоже, мне все равно придется сделать.
Возможный дубликат : after и: before css псевдоэлементы взлома для IE 7
IE7 - это годы после окончания срока его службы даже для расширенной поддержки и критических функций безопасности. Пожалуйста, рассмотрите возможность прекращения поддержки этого на ваших веб-сайтах и в приложениях.
@TylerH, достаточно ли установить более высокую версию, как я сделал в своем ответе?
@VBobCat Я не понимаю, что вы имеете в виду. Я говорю о том, чтобы не писать код явно для старых / небезопасных браузеров. Решение «X не работает в IE7» всегда должно быть «хорошим. Никто не должен больше использовать IE7». Или IE8, 9 или 10.
@TylerH, насколько вы совершенно правы, что мне делать, если мне нужно отобразить HTML внутри окна Winforms? Я не могу сейчас отказаться от Winforms. И это необходимо для ответа на конкретную проблему: раньше я сохранял файл .htm в temp и просто вызывал Process.Start поверх него. Затем этому пользователю удалось установить MS Word в качестве обработчика по умолчанию для .htm, этот пользователь продолжал терять браузер среди 237 окон, которые он держал открытыми одновременно ... Извините, я знаю, что мое решение далеко от идеала, но ... .
@VBobCat Для ясности, я не пытаюсь отключить вас или сказать, что на ваш вопрос не следует отвечать. Я знаю, что многим разработчикам приходится разрабатывать для конкретной среды и тому подобное. Но было бы упущением, если бы я также не оставил предупреждение для вас или других читателей на случай, если они не знают, что IE7 устарел / устарел / небезопасен. :-)






Хорошо, я вроде как решил это, выполнив приведенный ниже метод перед загрузкой компонента WebBrowser. Он основан на эта ветка. Будем надеяться, что он не выйдет из строя на пользовательских станциях без прав администратора:
Private Sub AdjustIE()
Dim appName = Process.GetCurrentProcess().ProcessName + ".exe"
Dim desiredversionKey = 8000
Try
Dim RegKey32 As RegistryKey = Nothing
RegKey32 = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", True)
If RegKey32 Is Nothing Then
RegKey32 = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION")
End If
Dim versionKey32 = CInt("0" & CStr(RegKey32.GetValue(appName)))
If versionKey32 < desiredversionKey Then
RegKey32.SetValue(appName, desiredversionKey, RegistryValueKind.DWord)
End If
RegKey32.Close()
Catch ex As Exception
If Debugger.IsAttached Then Stop
End Try
If (Environment.Is64BitProcess) Then
Try
Dim RegKey64 As RegistryKey = Nothing
RegKey64 = Registry.CurrentUser.OpenSubKey("SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", True)
If RegKey64 Is Nothing Then
RegKey64 = Registry.CurrentUser.CreateSubKey("SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION")
End If
Dim versionKey64 = CInt("0" & CStr(RegKey64.GetValue(appName)))
If versionKey64 < desiredversionKey Then
RegKey64.SetValue(appName, desiredversionKey, RegistryValueKind.DWord)
End If
RegKey64.Close()
Catch ex As Exception
If Debugger.IsAttached Then Stop
End Try
End If
End Sub
"стили выше не работают" довольно расплывчато. В частности, что отображается не так, как вы ожидаете? Поскольку IE7 устарел, маловероятно, что кто-то сможет вам это протестировать. Может быть, поможет снимок экрана, на котором сравниваются результаты IE7 и FF? В конце концов, вам не стоит беспокоиться об IE7 в 2018 году.