Question: I want to design a box with some transparency in it in CSS or CSS3 which must work in IE8, I made this code, it is working fine in other browsers, but in IE8 the box is becoming completely transparent, how to fix this problem?

> 
> 
> ```
> .price_tag {
>     position: absolute;
>     height: 146px;
>     width: 295px;
>     left: 210px;
>     top: 241px;
>     background-color: rgba(221, 221, 221, 0.7);
>     border-radius: 8px;
>     z-index: 200;
> 
>     -webkit-box-shadow: -2px -2px 6px rgba(255,255,255, 1) inset, 2px 0px 4px rgba(255,255,255,1) inset;
> 
>     box-shadow: -2px -2px 6px rgba(255,255,255, 1) inset, 2px 0px 4px rgba(255,255,255,1) inset;
> 
>     behavior: url(pie/PIE.htc); 
> }
> 
> ```
> 
>

Answer: 
With SWI-Prolog and the library(clpfd) you can ask question like that.

```
 ?- use_module(library(clpfd)).
%  library(apply_macros) compiled into apply_macros 0,00 sec, 39 clauses
%  library(assoc) compiled into assoc 0,03 sec, 143 clauses
% library(clpfd) compiled into clpfd 0,11 sec, 1,456 clauses
true.

 ?- 4 #= 2 * X.
X = 2.

```
You can use [`between/3`](http://www.swi-prolog.org/pldoc/man?section=arith) to generate integers:

```
?- between(1,1000,Y), X is 2 ^ Y, X == 4.
Y = 2,
X = 4 ;
false.

?- between(1,1000,Y), X is 2 ^ Y, X == 32.
Y = 5,
X = 32 ;
false.

```

You can also use `inf` for the second argument of `between/3`, but without some limiting condition that will cause these queries to loop after they give their first answer. ([`numlist/3`](http://www.swi-prolog.org/pldoc/man?section=lists), is another option, in case you find it makes more sense to work with lists of numbers instead of generating a new number each time it backtracks).

Writing a general purpose predicate for this might look like,

```
within_range(Low-High, X=Operation) :-
    between(Low, High, V1),
    between(Low, High, V2),
    Operation =.. [_, V1, V2],
    Y is Operation,
    Y = X.

```

Of course, this only works with 2 place operations without considerable tweaking. Some example queries: 

```
?- within_range(1-100, 8=X*Y).
X = 1,
Y = 8 ;
X = 2,
Y = 4 ;
X = 4,
Y = 2 ;
X = 8,
Y = 1 ;
false.

?- within_range(1-100, 8=14-X).
X = 6 ;
false.

```